var addthis_config={ui_language:'es',services_compact:'print,email,favorites,facebook,twitter,live,myspace,gmail,blogger,delicious,digg,linkedin,wordpress',ui_click:true,ui_use_addressbook:true};

function inicializarPagina(){    
    $("body").click(function(){
        $("#header .ventana").addClass("oculto");
        $("#menuV").addClass("oculto");
        $("#header .enlaces .subMenu").hide();
        $("#content .comenContent .comentario").addClass("oculto");
        $("#sidebar .calendario .dia .lista").hide();
    });

    $("#header .acceso").mouseleave(function(){       
        $("#header .acceso .subMenuRegistro").hide(); 
    });        
    if($(".slideShow").size()>0){
        cargarJavascript(
            "/js/slideShow.js",
            function(){
                $(".slideShow").each(
                    function(){
                        var obj = new slideShow($(this));
                        obj.play();              
                    }
                );
            }
        );
    }

    if($(".coverflow").size()>0){
        cargarJavascript(
            "/js/coverFlow.js",
            function(){
                $(".coverflow").each(
                    function(){
                        var obj = new coverFlow($(this),4500,"slow");
                        obj.play();
                    }
                );
            }
        );
    }
    
    addthis.init();
    addthis.toolbox(".toolBox");     
    
    //lee todos los enlaces de galeria y cambia su href por una llamada javascript para abrir el popup
    if(oGaleria){
        var enlacesGaleria = $("#middle a.itemGal");
        enlacesGaleria.click(function(){
            var css = $(this).attr("class").split(" ");
            var item = css[css.length-1].split("_");
            oGaleria(parseInt(item[1])).popup(parseInt(item[2]));
        });
        enlacesGaleria.attr("href","javascript:;");
    } 
    
    $("a[href^=mailto]").each(
                function(){
                    var href = $(this).attr("href");
                    href = href.replace(/mailto/,"mailto:");
                    href = href.replace(/_fwkat_/,"@");
                    href = href.replace(/_fwkdot_/,".");
                    $(this).attr("href",href);
                }
    );
    
    //lee todos los enlaces a recurso y cambia su mouseover por una llamada javascript para abrir el popup
    var enlacesPopupRecurso = $("a.popupRec");
    enlacesPopupRecurso.mouseover(function(event){
        var css = $(this).attr("class").split(" ");
        var item = css[css.length-1].split("_");
        popupsRecursoPopupSB(event,parseInt(item[1]),parseInt(item[2]));
        event.stopPropagation();        
    }); 
    
    //lee todos los enlaces a recurso y cambia su mouseover por una llamada javascript para abrir el popup
    var enlacesMenuSup = $("#header .enlaces>li");
    enlacesMenuSup.mouseenter(function(event){
        $("#header .enlaces>li").removeClass("selected");
        $(this).addClass("selected");
        $("#header .enlaces .subMenu").hide();
        $(".subMenu",$(this)).slideDown("slow",function(){$(".subMenu",$(this).parent().siblings()).hide();}); 
    });    
    $("#header .enlaces .subMenu").mouseenter(function(event){
        event.stopPropagation();
    });  
    
    $(".buscador .sitios .ventana a").mouseup(function(){buscadorCargando();return true});
    
    $("#content .comenContent a").click(function(event){
        $(this).parents(".comenContent").find(".comentario").removeClass("oculto");
        event.stopPropagation();
    }).attr("href","javascript:;"); 
    
    $("#header .acceso .entrar").click(function(event){
        $("#header .acceso .subMenuRegistro").slideDown("slow");         
        event.stopPropagation();  
    }).attr("href","#");          
    
    //info relacionada colapsable
    var n=0;
    $("#sidebar .mod13C>ul").each(function(){$(this).data("h",$(this).height());});
    $("#sidebar .mod13C>ul>li").each(function(){n++>2?$(this).hide():$(this).show();});
    $("#sidebar .mod13C .btn2 a").click(
        function(){
            var ul = $("ul:first",$(this).parents(".mod"));
            if(!ul.data("hmin"))
                ul.data("hmin",ul.height());
            
            if(ul.height()<ul.data("h")){
                ul.css("height",ul.height()+"px");
                ul.css("overflow","hidden");
                $("li",ul).show();
                ul.animate({height:ul.data("h")+"px"},"slow");
                $(this).html("Ocultar información relacionada");
            }else{
                ul.animate({height:ul.data("hmin")+"px"},"slow");
                $(this).html("Ver toda la información relacionada");
            }
        }
    ).attr("href","javascript:;");
    
    //tiras de contenido
    
    // css
    $(".tiraItems").parent().addClass("modTiraItemsSinJs");
    $(".cTiraItems").css({"overflow":"hidden"});
    $(".cTiraItems ul").css({"width":"30000px"});                                                   
    $(".tiraItems .btn").css({"display":"block"});
    
    $(".tiraItems").each(function(){
        var lis = $(this).find(".cTiraItems .item");
        $(this).data("anchoItems",lis.size()*lis.outerWidth());
        $(this).data("anchoVista",$(this).find(".cTiraItems").width());            
    });
    $(".tiraItems .btn").click(function(){ 
        var bloque = $(this).closest(".tiraItems");
        var ul = bloque.find(".items");
        var margin = null;
        var inc = null;
        if($(this).is(".btnAnteriorActivo"))
            inc=1;
        if($(this).is(".btnSiguienteActivo"))
            inc=-1;
        
        if(inc){
            margin = parseInt(ul.css("marginLeft").replace(/px/,""))+inc*bloque.data("anchoVista");
            if(-margin+bloque.data("anchoVista")+10>=bloque.data("anchoItems")){
                bloque.find(".btnAnterior").addClass("btnAnteriorActivo");
                bloque.find(".btnSiguiente").removeClass("btnSiguienteActivo");
            }else if(margin>=0){
                bloque.find(".btnAnterior").removeClass("btnAnteriorActivo");
                bloque.find(".btnSiguiente").addClass("btnSiguienteActivo");
            }else{
                bloque.find(".btnAnterior").addClass("btnAnteriorActivo");
                bloque.find(".btnSiguiente").addClass("btnSiguienteActivo");
            }
            ul.animate({marginLeft:margin+"px"},"slow");
        }
    });      
    /* popup en concursos */ 
    $("#middle a.popupConcurso").each(function(){     
        var css = $(this).attr("class").split(" ");
        var item = css[css.length-1].split("_");       
        $(this).attr("href","javascript:popupArchivo('"+item[1]+"');");  
    });     
    
    /*Saltar a otra página*/       
    $("#sidebar .mod12T6.id92 a").addClass("blank");    

    $("a.blank").click( function(){
                            var elem = $(this);
                            if(elem.attr("href").indexOf("javascript:")==-1){
                                elem.data("url",elem.attr("href"));
                                elem.attr("href","javascript:;");
                            }   
                            window.open(elem.data("url"));
                        }
    );      
             
             
    /* Aceptar bases de concursos */              
    $("a.concursarBases").click( function(){
                            if($(".condiciones input").attr('checked')===false){
                                alerta("Por favor, acepte las bases generales y específicas del concurso.");
                                return false;
                            }
                        }
    );           
} 

function alerta(mensaje){
    var idVentana = mostrarPopupHTML("<h1>"+mensaje+"</h1>","popup popupMensaje",false);
    $("#"+idVentana).click(function(){cerrarVentana($(this));});
}

function txtBuscadorFocus(e){
    var input = eventTarget(e);
    var txtInicio = input.data("inicio");
    if(!txtInicio || input.val()==txtInicio){
        input.data("inicio",input.val());
        input.val("");
    }    
}

function txtBuscadorBlur(e){
    var input = eventTarget(e);
    if(input.val().length==0){
        input.val(input.data("inicio"));
    }    
}

/*MAPAS*/
function crearMapaWB(idMapa,funcionRetorno,noInicializar){
    if(!objetoDefinido("mapas","object")){
        google.load("maps","3", 
                    {other_params: "sensor=false",
                     callback: 
                        function(){
                            cargarJavascript("http://archivos.turismocastillalamancha.com/js/clsMapa.js",
                                             function(){
                                                cargarJavascript("http://archivos.turismocastillalamancha.com/js/mapas.js",
                                                                 function(){
                                                                    cargarJavascript("/js/mapas.js",
                                                                                     function(){ 
                                                                                        funcionRetorno(mapas.crearMapa(idMapa,noInicializar));
                                                                                     });                                        
                                                                 }
                                                );                     
                                             }
                            );
                        }
                    }
        );
    }else
        funcionRetorno(mapas.crearMapa(idMapa,noInicializar));
}  

function inicializarLeyendaMapa(esPrincipal,nMapa){
    //lee todos los enlaces de mapa y cambia su href por una llamada javascript 
    var enlacesCapaMapaExp = $(".leyenda"+nMapa+" .btnCapa");
    enlacesCapaMapaExp.click(
        function(event){
            var enlaceExp = eventTarget(event);
            var capa = enlaceExp.parent();
            if(capa.hasClass("expandir"))
                capa.removeClass("expandir");
            else
                capa.addClass("expandir");
            if(capa.hasClass("expandir"))
                enlaceExp.attr("title",'Contraer esta capa');
            else
                enlaceExp.attr("title",'Expandir esta capa');
        } 
    );
    enlacesCapaMapaExp.attr("href","javascript:;");
    
    var enlacesCapaMapa = $(".leyenda"+nMapa+" ul em a");
    enlacesCapaMapa.click(
        function(event){
            var enlace = eventTarget(event);
            var capa = enlace.parent().parent();
            capa.toggleClass("sel");
            if(capa.hasClass("sel")){
                enlace.attr("title",'Ocultar %nombre%'.replace("%nombre%",enlace.html()));
                $("li",capa).addClass("sel");
            }else{
                enlace.attr("title",'Mostrar %nombre%'.replace("%nombre%",enlace.html()));
                $("li",capa).removeClass("sel");
            }
            if(esPrincipal)
                actualizarMapaPrincipal();
            else
                actualizarMapaCT(nMapa);
        }
    );
    enlacesCapaMapa.attr("href","javascript:;");    
    
    if(!esPrincipal){
        var enlacesLeyendaExp = $(".leyenda"+nMapa+" .btnLeyenda");
        enlacesLeyendaExp.click(
            function(event){
                var contenedor = eventTarget(event).closest(".leyenda");
                if(contenedor.hasClass("mostrar")){   
                    contenedor.removeClass("mostrar");
                    contenedor.addClass("ocultar");
                }else{
                    contenedor.removeClass("ocultar");
                    contenedor.addClass("mostrar");
                }
            } 
        );
        enlacesLeyendaExp.attr("href","javascript:;");    
    }
} 

function obtenerCapasSeleccionadasMapa(nMapa){
    if(!nMapa)
        nMapa = "";
    //obtenemos las capas seleccionadas
    var capas = new Array();
    $(".leyenda"+nMapa+" .sel").each(
                            function(){
                                var capa = $(this);
                                var css = capa.attr("class").split(" ");
                                for(var i=0;i<css.length;i++){
                                    if(css[i].indexOf("capa")>-1)
                                        capas.push(parseInt(css[i].replace(/capa/,"")));
                                }
                            }
    );
    return capas;        
} 

var mapasCT = new Array();
var mapaPrincipal = null;
//modulo de mapa 
function inicializarCTMapa(nMapa,idMapa){
    //inicializamos los botones de leyenda del mapa
    inicializarLeyendaMapa(false,nMapa);
    
    //creamos el mapa
    crearMapaWB("mapaGM"+nMapa,
                    function(mapa){
                        mapas.cargarVistaInicialMapa(mapa,idMapa);
                        google.maps.event.addListener(mapa,"center_changed",function(){actualizarMapaCT(nMapa);});
                        google.maps.event.addListener(mapa,"zoom_changed",function(){actualizarMapaCT(nMapa);});
                        mapasCT[nMapa] = mapa;
                        google.maps.event.addListener(
                            mapa,
                            "tilesloaded",
                            function(){
                                if(!this.inicializado)
                                    actualizarMapaCT(nMapa);
                                this.inicializado = true;
                            }
                        );
                    }
    );
}

function actualizarMapaCT(nMapa){
    //obtenemos las capas seleccionadas
    var capas = obtenerCapasSeleccionadasMapa(nMapa);
    mapas.obtenerElementosCapas(mapasCT[nMapa],
                            capas,
                            function(elementos,paramsGen){mapas.cargarElementosMapa(mapasCT[nMapa],elementos,paramsGen);});   
}

//mapa principal
function inicializarMapaPrincipal(usarSecciones,funcionRetorno){
    //inicializamos los botones de leyenda del mapa
    inicializarLeyendaMapa(true,"");
    
    //creamos el mapa
    crearMapaWB("mapaGM",
                function(mapa){
                    google.maps.event.addListener(mapa,"center_changed",function(){actualizarMapaPrincipal();});
                    google.maps.event.addListener(mapa,"zoom_changed",function(){actualizarMapaPrincipal();});
                    mapa.usarSecciones = usarSecciones;
                    mapa.setOptions({mapTypeControl:false});
                    mapaPrincipal = mapa;
                    google.maps.event.addListener(
                        mapa,
                        "tilesloaded",
                        function(){
                            if(!this.inicializado){
                                if(funcionRetorno)
                                    funcionRetorno();
                                actualizarMapaPrincipal();
                            }
                            this.inicializado = true;
                        }
                    );
                }
    );
} 

function actualizarMapaPrincipal(){
    var capas = obtenerCapasSeleccionadasMapa();
    if(mapaPrincipal.usarSecciones){
        mapas.obtenerElementosSecciones(mapaPrincipal,
                                capas,
                                function(elementos,paramsGen){mapas.cargarElementosMapa(mapaPrincipal,elementos,paramsGen);});
    }else{
        mapas.obtenerElementosCapas(mapaPrincipal,
                                capas,
                                function(elementos,paramsGen){mapas.cargarElementosMapa(mapaPrincipal,elementos,paramsGen);});
    }
    actualizarMapaPrincipalInfo(capas);
}

function actualizarMapaPrincipalInfo(capas){
    $("#vPuntos").addClass("oculto"); //ocultamos la lista de puntos desplegada
    ejecutarAjax(
                "/lib/ajax/mapas.php",
                "a=21&"+(mapaPrincipal.usarSecciones?"s":"c")+"="+capas.join(",")+"&"+mapaPrincipal.obtenerParamsVistaMapa(),
                "POST",
                function(respuesta){
                    if(respuesta){
                        var datos = eval(respuesta);
                        $(".modMapa .encontrados strong a").html(datos[0]);
                        $(".modMapa .localizacion").html(datos[1]);
                    }
                }
    );
}

function mostrarListaPuntosEncontrados(){
    if($("#vPuntos").hasClass("oculto")){
        var capas = obtenerCapasSeleccionadasMapa();
        if(capas.length>0){
            ejecutarAjax(
                        "/lib/ajax/mapas.php",
                        "a=22&"+(mapaPrincipal.usarSecciones?"s":"c")+"="+capas.join(",")+"&"+mapaPrincipal.obtenerParamsVistaMapa(),
                        "POST",
                        function(respuesta){
                            $("#vPuntos").html(respuesta);
                            mostrarMenu('vPuntos');
                        }
            );
        }
    }else
        mostrarMenu('vPuntos');
}

function buscarEnMapaPrincipal(){
    buscarEnMapa($('.modMapa .busqueda .txtBuscador').val(),mapaPrincipal);
}

function buscarEnMapa(q,mapa){
    if($("#vPuntosB").hasClass("oculto")){
        ejecutarAjax(
                    "/lib/ajax/mapas.php",
                    "a=22&q="+q.replace(/&/," ")+"&"+mapa.obtenerParamsVistaMapa(),
                    "POST",
                    function(respuesta){
                        $("#vPuntosB").html(respuesta);
                        mostrarMenu('vPuntosB');
                    }
        );
    }else
        mostrarMenu('vPuntosB');
}

function verPDI(lat,lng,idTipoPunto,idTipoRecurso,idRecurso,idArchivo,idPunto,nombre,enBusqueda){
    var punto = new google.maps.LatLng(lat,lng);
    
    switch(idTipoPunto){
        case 2:
            mapas.mostrarPopupRecurso(mapaPrincipal,punto,idTipoRecurso,idRecurso);
        break;
        case 1:
            mapas.mostrarPopupPuntoMapa(mapaPrincipal,punto,idPunto);
        break;
        case 3:
            mapas.mostrarPopupArchivo(mapaPrincipal,punto,idArchivo);
        break;
    }
    
    if(enBusqueda){
        mostrarMenu('vPuntosB');
    }else{
        mostrarMenu('vPuntos');    
    }
    mapaPrincipal.panTo(punto);
}

function comoLlegarLugar(latitud,longitud,nombreLugar){
    var origen = $("#clOrigen").val()+", Spain";
    var destino = latitud+","+longitud;
    var descOrigen = $("#clOrigen").val();
    var descDestino = nombreLugar;
    mapas.comoLlegar(origen,
                destino,
                function(gDir){
                    var ruta = gDir.routes[0];
                    var datosResumen = mapas.obtenerResumenRuta(ruta);
                    //procesamiento al recibir el como llegar
                    var html;
                    html  = '<h3>Cómo llegar paso a paso</h3>';                        
                    //rellenamos los datos del resumen de ruta
                    html += '<ul>';
                    html +=     '<li>Distancia: '+datosResumen.distancia.texto+'</li>';
                    html +=     '<li>Duración: '+datosResumen.duracion.texto+'</li>';
                    html +=     '<li><a class="btnImprimir" href="javascript:;" onclick="window.print();" title="Imprimir información de ruta">Imprimir</a></li>';
                    html += '</ul>';
                    //rellenamos las indicaciones
                    html += "<span class='icoP76 extremoRuta extremoRutaA'>Salida <strong>"+descOrigen.toUpperCase()+"</strong></span>";
                    html += "<div class='indicaciones'>";
                    html +=     "<table>";
                    var n=1;
                    for(var i=0;i<ruta.legs.length;i++){
                        for(var j=0;j<ruta.legs[i].steps.length;j++){
                            var p = ruta.legs[i].steps[j].start_location;
                            html += '<tr onclick="mapaPrincipal.setCenter(new google.maps.LatLng('+p.lat()+','+p.lng()+'));mapaPrincipal.setZoom(17);" class="fila'+(n%2)+'">';
                            html +=     "<td class='num'>";
                            html +=         "<a href='javascript:void(0)'>"+n+"</a>";
                            html +=     "</td>";
                            html +=     "<td>";
                            html +=         ruta.legs[i].steps[j].instructions;
                            html +=     "</td>";
                            html +=     "<td>";
                            html +=         ruta.legs[i].steps[j].distance.text;
                            html +=     "</td>";
                            html += "</tr>";
                            n++;
                        }
                    }
                    html +=    "</table>";
                    html += "</div>";
                    html += "<span class='icoP77 extremoRuta extremoRutaB'>Llegada <strong>"+descDestino.toUpperCase()+"</strong></span>";
                    var comoLlegarInfo = $('#sidebar .modComoLlegarInfo');
                    comoLlegarInfo.html(html);
                    comoLlegarInfo.slideDown('slow');
                    mapaPrincipal.limpiarContenido();
                    
                    var linea = mapas.obtenerLineaDesdeRuta(ruta);
                    linea.setOptions({strokeColor:"#3333FF",strokeWeight:3});
                    linea.setMap(mapaPrincipal);
                    var marcadorA = mapas.crearMarcadorPunto(mapaPrincipal,descOrigen,linea.getPath().getAt(0),mapas.iconos[76],function(marcador){}).setMap(mapaPrincipal);
                    var marcadorB = mapas.crearMarcadorPunto(mapaPrincipal,descDestino,linea.getPath().getAt(linea.getPath().getLength()-1),mapas.iconos[77],function(marcador){}).setMap(mapaPrincipal);
                    mapaPrincipal.lineas.push(linea);
                    mapaPrincipal.marcadores.push(marcadorA);
                    mapaPrincipal.marcadores.push(marcadorB);
                    
                    mapaPrincipal.fitBounds(ruta.bounds);
                },
                function(){
                    alert("Se ha producido un error");
                },
                "es"
    );
}

//mapa de buscador
function inicializarMapaBuscador(){ 
    //creamos el mapa
    crearMapaWB("mapaGM",
                function(mapa){
                    mapa.ponerCentro();
                    google.maps.event.addListener(mapa,"center_changed",actualizarMapaBuscador);
                    google.maps.event.addListener(mapa,"zoom_changed",actualizarMapaBuscador);
                    google.maps.event.addListener(
                        mapa,
                        "tilesloaded",
                        function(){
                            if(!this.inicializado){
                                mapaPrincipal = this;
                                actualizarMapaBuscador(true);
                                mapaPrincipal.cargarFrontera();
                            }
                            this.inicializado = true;
                        }
                    );
                },
                true
    );
}

function leerParamsFormularioGlobal(cssForm,chrAsig){
    var params = new Array(); 
    //inputs
    paramsInput = leerParamsFormulario(cssForm+" input",chrAsig);
    //selects
    paramsSelect = leerParamsFormulario(cssForm+" select",chrAsig);  
    params = paramsInput.concat(paramsSelect);   
    return params;       
}

function leerParamsFormulario(css,chrAsig){
    if(!chrAsig)
        chrAsig = "=";
    var params = new Array();
    $(css).each(function(){
                        var elem = $(this);
                        if(elem.attr("name").length>0 && elem.attr("name")!="g" && elem.attr("name")!="a" && elem.val().length>0)
                            params.push(elem.attr("name")+chrAsig+elem.val());   
                   }
    );
    return params;    
}

function actualizarMapaBuscador(cargaInicial){ 
    var params = leerParamsFormulario("#sidebar .buscador form input");
    mapas.obtenerElementosBusqueda(mapaPrincipal,
                             $("#menuV").data("idSeccion"),
                             $("#g").val(),
                             params.join("&"),
                             function(elementos,paramsGen){
                                 mapas.cargarElementosMapa(mapaPrincipal,elementos,paramsGen);
                                 if(cargaInicial)
                                    adaptarVistaMapaBuscador();
                             }
    );        
}

function adaptarVistaMapaBuscador(){
    var params = leerParamsFormulario("#sidebar .buscador form input");
    var vista = mapas.obtenerElementosBusquedaLimites($("#menuV").data("idSeccion"),$("#g").val(),params.join("&"));
    var bounds = new google.maps.LatLngBounds();
    bounds.extend(new google.maps.LatLng(vista.latMin,vista.lngMin));
    bounds.extend(new google.maps.LatLng(vista.latMax,vista.lngMax));
    mapaPrincipal.adaptarVista(bounds);
}

function cargarMapaRecurso(idTipoRecurso,idRecurso,nombre,lat,lng){
    crearMapaWB("mapaGM",
                function(mapa){
                    var marcador = mapas.crearMarcadorRecurso(mapa,idTipoRecurso,idRecurso,nombre,new google.maps.LatLng(lat,lng));
                    marcador.setMap(mapa);
                    mapa.ponerCentro(lat,lng,13);
                    mapaPrincipal = mapa;
                }
    );    
}    

function mapaCapaSel(idLi){
    $("li",$("#"+idLi).parent()).removeClass("selected");
    setTimeout('$("#'+idLi+'").addClass("selected")',200);
}

function mapaTipoSel(tipo,e){
    mapaPrincipal.ponerTipo(tipo);
    $(".modMapa .visualizar strong a").html(eventTarget(e).html());
    mostrarMenu('vVisualizar');
}

function mapaPrincipalParamsEnlazar(){
    var c = mapaPrincipal.getCenter();
    var z = mapaPrincipal.getZoom();
    var t = mapaPrincipal.obtenerTipo();
    
    var params = new Array();
    params.push("c="+c.lat()+"|"+c.lng());
    params.push("z="+z);
    params.push("t="+t);
    return params.join("&");
}

function mapaPrincipalEnlazar(){
    var params = mapaPrincipalParamsEnlazar();
    var href = window.location.href.split("?");
    window.location = href[0]+"?"+params;
}

function campoFormCaracteresRestantes(input,campo,totalCaracteres){
    input.keyup(
        function(){
            var restantes = (totalCaracteres-$(this).val().length);
            var restantesSpan = campo.find("label .restantes");
            var color = "#900";
            if(restantes>=0)
                color = "#090";
                
            if(restantesSpan.size()==0)
                restantesSpan = $("<span />").addClass("restantes").appendTo(campo.find("label"));
            restantesSpan.html(restantes).css("color",color);
        }
    );
    input.blur(
        function(){
            campo.find("label .restantes").remove();
        }
    );
}

//mapa de listado
function inicializarMapaListado(idTipoModulo,idModulo,paramsForm){ 
    //creamos el mapa
    crearMapaWB("mapaGM",
                function(mapa){
                    mapa.ponerCentro();
                    google.maps.event.addListener(mapa,"center_changed",function(){actualizarMapaListado(idTipoModulo,idModulo,paramsForm);});
                    google.maps.event.addListener(mapa,"zoom_changed",function(){actualizarMapaListado(idTipoModulo,idModulo,paramsForm);});
                    mapaPrincipal = mapa;
                    actualizarMapaListado(idTipoModulo,idModulo,paramsForm,true);
                    mapaPrincipal.cargarFrontera();
                },
                true
    );
}

function actualizarMapaListado(idTipoModulo,idModulo,paramsForm,cargaInicial){
    mapas.obtenerElementosModuloEnumeracion(mapaPrincipal,
                             idTipoModulo,
                             idModulo,
                             paramsForm,
                             function(elementos){
                                 mapas.cargarElementosMapa(mapaPrincipal,elementos);
                                 if(cargaInicial)
                                     adaptarVistaMapaListado(idTipoModulo,idModulo,paramsForm);
                             }
    );        
}

function adaptarVistaMapaListado(idTipoModulo,idModulo,paramsForm){
    var vista = mapas.obtenerElementosModuloEnumeracionLimites(idTipoModulo,idModulo,paramsForm);
    var bounds = new google.maps.LatLngBounds();
    bounds.extend(new google.maps.LatLng(vista.latMin,vista.lngMin));
    bounds.extend(new google.maps.LatLng(vista.latMax,vista.lngMax));
    mapaPrincipal.adaptarVista(bounds);
}

/*FIN MAPAS*/

/*FUNCIONES DE GALERIA*/
var galerias = new Array();
function crearGaleria(nGaleria,archivos,idContenedor,itemsPorPagina,incrementoPx){
    if(!objetoDefinido("galeria","function"))
        cargarJavascript("/js/clsGaleria.js",function(){crearGaleria(nGaleria,archivos,idContenedor,itemsPorPagina,incrementoPx);});
    else
        galerias[nGaleria] = new galeria(nGaleria,archivos,idContenedor,itemsPorPagina,incrementoPx);
}

function oGaleria(nGaleria){
    return galerias[nGaleria];
}   

function popupArchivo(idArchivo,objGaleria,funcionCargado){
    var contenedor;
    if(objGaleria && objGaleria.idPopup && $("#"+objGaleria.idPopup)){
        contenedor = $("#"+objGaleria.idPopup+" .popupArchivoContenedor");
        if(contenedor.length==0 && objGaleria.paseActivado)
            objGaleria.detenerPase();
    }
    
    if(!contenedor || contenedor.length==0){
        contenedor = $("<div />");
        var idPopup = mostrarPopup(contenedor,"popup popupArchivo");
        if(objGaleria){
            objGaleria.idPopup = idPopup;
            $("#"+objGaleria.idPopup+" .botonCerrar").click(
                function(){
                    objGaleria.detenerPase();                        
                }
            );
        }
    }
    
    ejecutarAjax(
                "/lib/ajax/popup-archivo.php",
                "a="+idArchivo+(objGaleria?"&g="+objGaleria.nGaleria:""),
                "POST",
                function(respuesta){ 
                    contenedor.html(respuesta);
                    
                    addthis.init();
                    addthis.toolbox(".toolBoxArchivo");
                    FB.XFBML.parse(contenedor.get(0));
                    
                    var img = $(".multimedia .contenedor img",contenedor);
                    contenedor.addClass("popupArchivoContenedor");
                    if(img.size()>0){
                        contenedor.addClass("cargando");
                        img.load(function(){
                            contenedor.removeClass("cargando");
                        });
                    }
                    
                    if(objGaleria)
                        objGaleria.actualizar();
                    if(funcionCargado)
                        funcionCargado();
                }
    );    
}
/*FIN FUNCIONES DE GALERIA*/

/*TEXTO LEGAL*/ 
function politicaPrivacidad(){
    ejecutarAjax(
                "/lib/ajax/texto-legal.php",
                "",
                "POST",
                function(respuesta){
                    mostrarPopupHTML(respuesta,"popup popupTextoLegal");
                }
    );
}     
/*FIN TEXTO LEGAL*/

/*MENUS EMERGENTES*/
function mostrarMenu(idMenu){
    $("#"+idMenu).toggleClass("oculto");
}
/*FIN MENUS EMERGENTES*/

/*BUSCADOR*/
var buscadorSeccionActual=null;

function inicializarBuscador(idSeccion,enMapa){
    $('#menuV').data('idSeccion',idSeccion); 
    if(enMapa)
        inicializarMapaBuscador();
}

function buscadorCargando(){
    $("#sidebar").prepend($("<div />").addClass("buscadorCargando").height($("#sidebar").height()));        
}

function buscadorCambioOrden(){
    var orden = $("#osel").val();
    $("#o").val(orden);
    buscadorActualizar();    
}
function buscadorVSeccion(params,geo){
    var menu = $("#menuV");
    menu.toggleClass("oculto");
    if(!menu.hasClass("oculto")){
        if(geo.length>0){
            if(params.length>0)
                params += "&";
            params += "g="+geo;
        }
            
        $("#sidebar .sitios li span").html("...");
        //calculamos número de resultados por seccion
        ejecutarAjax(
                "/lib/ajax/num-resultados-seccion.php",
                params?params:"aaaa=1",
                "POST",
                function(respuesta){
                    var datos = eval(respuesta);
                    for(var i=0;i<datos.length;i++)
                        $("#sidebar .sitios .s"+datos[i].s+" span").html("("+datos[i].n+")");
                }
        );        
    }
}

function buscadorCambiarZG(val){
    ejecutarSelector("/lib/selectores/navegacion/selector-zona-geografica.php",
                        "zonaGeografica",
                        function(zg){
                            if(zg.charAt(0)=="1")
                                zg = "";
                            $("#g").val(zg);
                            buscadorActualizar();
                        },
                        "valorSelector="+val
    ); 
}

//actualiza la pagina en base a los datos del buscador
function buscadorActualizar(){
    var formu = $("#sidebar .buscador form");
    buscadorCargando();
    formu.get(0).submit();
} 

var idTimeoutSelZG=null;
function buscadorSelZGCambio(tz,q,idDestino,idMenu,url,params){
    if(idTimeoutSelZG)
        clearTimeout(idTimeoutSelZG);
    idTimeoutSelZG = setTimeout("buscadorSelZGBuscar("+tz+",'"+q+"','"+idDestino+"','"+idMenu+"','"+url+"','"+params+"')",1000);
}  

function buscadorSelZGBuscar(tz,q,idDestino,idMenu,url,params){
    var ul = $("li.tz"+tz+" .busqueda ul");
    ul.addClass("cargando");
    ejecutarAjax(
                url,
                params+(params.length>0?"&":"")+"lista=1&tz="+tz+"&q="+q+"&idDestino="+idDestino+"&idMenu="+idMenu,
                "POST",
                function(respuesta){
                    ul.replaceWith(respuesta);
                }
    );           
}

function buscadorSelZGItemMenu(idMenu,tz){
    $("#"+idMenu+" .tz").addClass("colapsar");
    $("#"+idMenu+" .tz"+tz).removeClass("colapsar");
}

function buscadorSelZGCargarLocalidad(idMenu,idLocalidad,latitud,longitud,nombre,idDestino,jsEnlace){ 
    var bloqueSel = $("#"+idMenu+" .tz4 .seleccion");
    var html = "";
    var geoSN1 = "|";
    var geoSN2 = ";";
    
    jsEnlace = jsEnlace.replace(/\^/g,"'");
    var jsEnlaceLoc = jsEnlace.replace(/#valSelector#/,"4"+geoSN1+idLocalidad);
    var jsEnlace5 = jsEnlace.replace(/#valSelector#/,"5"+geoSN1+latitud+geoSN2+longitud+geoSN2+"5");
    var jsEnlace10 = jsEnlace.replace(/#valSelector#/,"5"+geoSN1+latitud+geoSN2+longitud+geoSN2+"10");
    var jsEnlace20 = jsEnlace.replace(/#valSelector#/,"5"+geoSN1+latitud+geoSN2+longitud+geoSN2+"20");
    var jsEnlace30 = jsEnlace.replace(/#valSelector#/,"5"+geoSN1+latitud+geoSN2+longitud+geoSN2+"30");
    
    html += "<span>Has seleccionado</span>";
    html += "<strong>"+nombre+"</strong>";
    html += "<span>¿A qué distancia buscas?</span>";
    html += "<ul>";
    html +=     "<li><a href='javascript:;' onclick=\""+jsEnlaceLoc+"\">En este Lugar</a></li>";
    html +=     "<li><a href='javascript:;' onclick=\""+jsEnlace5+"\">A menos de 5 km</a></li>";
    html +=     "<li><a href='javascript:;' onclick=\""+jsEnlace10+"\">A menos de 10 km</a></li>";
    html +=     "<li><a href='javascript:;' onclick=\""+jsEnlace20+"\">A menos de 20 km</a></li>";
    html +=     "<li><a href='javascript:;' onclick=\""+jsEnlace30+"\">A menos de 30 km</a></li>";
    html += "</ul>";    
    bloqueSel.html(html);
}
/*FIN BUSCADOR*/

/*SIDEBAR*/
function sbMenuVerticalSelElem(idContenedor,pos){
    var items = $("#"+idContenedor+" .imagen li");
    var contenidos = $("#"+idContenedor+" .contenido li");    
    items.removeClass("selected");
    contenidos.removeClass("visible");    
    items.eq(pos).addClass("selected");
    contenidos.eq(pos).addClass("visible");
}
/*FIN SIDEBAR*/   

/*POPUPS*/          
var timeoutPrevPopup=null; 
function popupsCerrarPopupSB(){
    if(timeoutPrevPopup)
        clearTimeout(timeoutPrevPopup);
    popupsCerrarPopupsSB();
    $("body").unbind("mouseover");
}
function popupsCerrarPopupsSB(segundoNivel){
    var popups = $(".miniPopup");
    for(var i=0;i<popups.length;i++){
        var popup = popups.eq(i);
        if(!segundoNivel || popup.data("segundoNivel")==true)
            cerrarVentana(popup);
    }
}
function popupsMostrarPopupHTML(htmlInterno,claseCSS,sinFondo,sinFadein){
    var contenedor = $("<div />");
    contenedor.html(htmlInterno);
    var ventana = $("<div />");
    ventana.addClass(claseCSS);
    ventana.attr("id",generarIdAleatorio());
    ventana.mouseover(function(event){event.stopPropagation();});
    $("body").mouseover(popupsCerrarPopupSB);
    ventana.append(contenedor);
    abrirVentana(ventana,sinFondo,sinFadein);
    return ventana.attr("id");
}

/*popups de mapas*/
var timeoutPrevPopup=null;
function popupsMapaPopupSB(e,params,numElementos){
    if(timeoutPrevPopup)
        clearTimeout(timeoutPrevPopup);
    timeoutPrevPopup = setTimeout(function(){popupsMapaCargarPopupSB(e,params,numElementos);},200);    
}

function popupsMapaCargarPopupSB(e,params,numElementos,segundoNivel){
    popupsCerrarPopupsSB(segundoNivel);
    
    var pos = eventTarget(e).offset();
    
    var parametros = new Array();
    if(numElementos==1)
        parametros.push("idPunto="+params[0]);
    else{
        parametros.push("lat="+params[0]);
        parametros.push("lng="+params[1]);
        parametros.push("c="+params[2]);
    } 
    
    ejecutarAjax(
                "/lib/ajax/mini-popup-punto-mapa.php",
                "numElementos="+numElementos+"&"+parametros.join("&"),
                "POST",
                function(respuesta){
                    var idVentana = popupsMostrarPopupHTML(respuesta,"miniPopup miniPopupPuntoMapa"+(numElementos>1?" miniPopupPuntoMapaG":""),true,segundoNivel);
                    var ventana = $("#"+idVentana);
                    ventana.data("segundoNivel",segundoNivel);
                    ventana.css("left",parseInt(pos.left)+"px");
                    ventana.css("top",parseInt(pos.top)+"px");
                }
    );
} 

function popupsMapaPopupCambioVistaGrupo(e){
    var lis = $("li",eventTarget(e).parent().parent());
    var imgMapa = $("img",lis.parent().parent());
    lis.toggleClass("sel");
    var url = imgMapa.attr("src");
    if(lis.eq(0).hasClass("sel")) //mapa
        url = url.replace(/satellite/,"roadmap");
    else
        url = url.replace(/roadmap/,"satellite");
    imgMapa.attr("src",url);
}  
/*popups de recursos*/
function popupsRecursoPopupSB(e,idTipoEntidad,idRecurso){
    if(timeoutPrevPopup)
        clearTimeout(timeoutPrevPopup);
    timeoutPrevPopup = setTimeout(function(){popupsRecursoCargarPopupSB(e,idTipoEntidad,idRecurso);},200);    
}

function popupsRecursoCargarPopupSB(e,idTipoEntidad,idRecurso,segundoNivel){
    popupsCerrarPopupsSB(segundoNivel);
    
    var pos = eventTarget(e).offset();  
    
    ejecutarAjax(
                "/lib/ajax/mini-popup-recurso.php",
                "te="+idTipoEntidad+"&r="+idRecurso,
                "POST",
                function(respuesta){
                    if(respuesta.length>0){
                        var idVentana = popupsMostrarPopupHTML(respuesta,"miniPopup",true);
                        var ventana = $("#"+idVentana);
                        ventana.data("segundoNivel",segundoNivel);
                        ventana.css("left",parseInt(pos.left)+"px");
                        ventana.css("top",parseInt(pos.top)+"px");
                    }
                }
    );
}

function popupAyuda(texto,idTipoRecurso){
    ejecutarAjax(
                "/lib/ajax/popup-ayuda.php",
                "txt="+texto+"&tr="+idTipoRecurso,
                "POST",
                function(respuesta){
                    if(respuesta.length>0){
                        mostrarPopupHTML(respuesta,"popup popupAyuda",false);
                    }
                }
    );       
}
/*FIN POPUPS*/      

//SELECTOR DE LOCALIZACION
function abrirSelectorMapa(idDestino,claseCSSPopup,params,mostrarCargando,funcionOk){
    //obtenemos/creamos la ventana para selectores
    var ventana = ventanaSelector(idDestino,claseCSSPopup);
    //vaciamos el contenido de la ventana actual
    $("#"+ventana.attr("id")+" .selectorVentanaContenido").empty();
    //cargamos su contenido con ajax
    var cargando;
    if(mostrarCargando)
        cargando = txtCargando;
    else
        cargando = "&nbsp;";
    //abrimos la ventana
    abrirVentana(ventana);
    //obtenemos el popup
    var popup = $("#selectorVentanaContenido"+idDestino);
    if(popup.size()>0){
        //hay que esperar a la carga para que este disponible el div de mapa
        popup.html(ejecutarAjaxSync(selectores[idDestino]['urlSelector'],params,"POST"));
        //una vez cargado, llamamos a la funcion crearMapa() para que lo cargue
        crearMapaWB("selLocMapaGM",
                    function(mapa){
                        //para que se vea correctamente
                        window.scrollTo(0,0);
                        funcionOk(mapa);
                    }
        );
    }
}

var selectorLocalizacionMarcador;
//abre el selector de localizacion
function abrirSelectorLocalizacion(idDestino,claseCSSPopup,params){
    //abrimos el popup de selector con mapa
    abrirSelectorMapa(idDestino,
                      claseCSSPopup,
                      params,
                      false,
                      function(mapa){
                            //deserializamos el valor y configuramos el mapa en consecuencia
                            var localizacion = $("#"+idDestino).val().split("|*|");
                            if(localizacion.length>=2){
                                var latitudInicial = localizacion[0];
                                var longitudInicial = localizacion[1];
                                mapa.ponerCentro(latitudInicial,longitudInicial,10);
                                //ponemos el localizador        
                                selectorLocalizacionMarcador = mapa.ponerMarcadorDraggable(latitudInicial,longitudInicial);
                                google.maps.event.addListener(selectorLocalizacionMarcador,"dragend",function(){selectorLocalizacionActualizarDescripcionPunto();});
                                //descripcion del lugar
                                selectorLocalizacionActualizarDescripcionPunto();
                            }
                            //ponemos el marcador a mover
                            google.maps.event.addListener(mapa,
                                                "click",
                                                function(e){
                                                    if(selectorLocalizacionMarcador)
                                                        selectorLocalizacionMarcador.setMap(null);
                                                    selectorLocalizacionMarcador = mapa.ponerMarcadorDraggable(e.latLng.lat()+0.000001,e.latLng.lng());
                                                    google.maps.event.addListener(selectorLocalizacionMarcador,"dragend",function(){selectorLocalizacionActualizarDescripcionPunto();});
                                                    selectorLocalizacionActualizarDescripcionPunto();
                                                }
                            );
                      }
    );
}

function selectorLocalizacionActualizarDescripcionPunto(){
    var punto = selectorLocalizacionMarcador.getPosition();
    mapas.geolocalizarR(punto.lat(),punto.lng(),function(lugar){$("#selLocDescLugar").html(lugar.replace(/, Spain/,"").replace(/, España/,""));},function(){$("#selLocDescLugar").html("Desconocido");});
}

function cerrarVentanaSelectorMapa(idDestino){
    cerrarVentanaSelector(idDestino);
}

function selectorLocalizacionCambiarZoom(idDestino,inc,zoomPorDefecto){
    var loc = $("#"+idDestino).val().split('|*|');
    if(loc.length>=2){
        loc[3] = (loc[3]?parseInt(loc[3]):zoomPorDefecto)+inc;
        cargarDestinoSelector(idDestino,loc.join('|*|'));
    }else
        alerta("Debes seleccionar un lugar en el mapa para poder modificar el zoom");
}

function selectorZonaGeograficaValorLoc(idDestinoLoc,idDestinoRadio,idDestino){
    var cgSepN1 = "|";
    var cgSepN2 = ";";
    var loc = $("#"+idDestinoLoc).val().split('|*|');
    var descLugar = loc[2];
    descLugar.replace(cgSepN1,"");
    descLugar.replace(cgSepN2,"");
    var radio = $("#"+idDestinoRadio).val();
    
    if(loc[0] && loc[1] && radio)
        return "5"+cgSepN1+loc[0]+cgSepN2+loc[1]+cgSepN2+radio+cgSepN2+descLugar;
}

function selectorZonaGeograficaValorLocComprobar(idDestinoLoc,idDestinoRadio,idDestino){
    var loc = $("#"+idDestinoLoc).val().split('|*|');
    var radio = $("#"+idDestinoRadio).val();
    
    if(loc[0] && loc[1] && radio)
        return true;
    else{
        alerta("Debes seleccionar primero un lugar en el mapa");
        return false; 
    }   
}
//FIN SELECTOR DE LOCALIZACION

//CUADERNO DE VIAJE
function cvAnadirRecurso(idTipoEntidad,idRecurso){      
    var enlaces = $(".btnCuadernoAdd,.btnCuadernoDel");
    enlaces.unbind('click');
    enlaces.attr('onclick','');
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=1&te="+(idTipoEntidad?idTipoEntidad:"")+"&r="+(idRecurso?idRecurso:""),
                "POST",
                function(respuesta){
                    var html = eval(respuesta);
                    var cv = $("#header .cViaje");
                    if(cv.size()==0){
                        cv = $("<div />");
                        cv.addClass("cViaje");
                        $("#header .mid").append(cv);
                        $("#header").addClass("cv");
                    }
                    cv.html(html[0]);
                    enlaces.removeClass("btnCuadernoAdd");
                    enlaces.addClass("btnCuadernoDel");
                    enlaces.html("Quitar del cuaderno de viaje");
                    enlaces.click(function(event){cvEliminarRecurso(idTipoEntidad,idRecurso);});
                    mostrarPopupHTML(html[1],"popup popupCuadernoViajeAdd");
                }
    );       
}

function cvEliminarRecurso(idTipoEntidad,idRecurso,funcionOk){
    var enlaces = $(".btnCuadernoAdd,.btnCuadernoDel");
    enlaces.unbind('click');
    enlaces.attr('onclick','');
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=2&te="+idTipoEntidad+"&r="+idRecurso,
                "POST",
                function(respuesta){
                    if(respuesta.length>0)
                        $("#header .cViaje").html(respuesta);
                    else{
                        $("#header .cViaje").remove();
                        $("#header").removeClass("cv");
                    }                      
                    enlaces.removeClass("btnCuadernoDel");
                    enlaces.addClass("btnCuadernoAdd");                                      
                    enlaces.html("Añadir al cuaderno de viaje");
                    enlaces.click(function(event){cvAnadirRecurso(idTipoEntidad,idRecurso,event);});
                    if(funcionOk)
                        funcionOk();
                }
    );       
}

function cvEliminarTodo(e){
    var enlace = eventTarget(e);    
    enlace.unbind('click');
    enlace.attr('onclick','');
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=3",
                "POST",
                function(respuesta){
                    window.location.reload();    
                }
    );    
}

function cvEliminarCuaderno(idCuadernoViaje){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=20&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){  
                    window.location = '/multimedia/espacio/cuadernos-viaje/';    
                }
    );    
}

function cvOrdenElemento(idTipoEntidad,idRecurso,subir,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=12&te="+idTipoEntidad+"&r="+idRecurso+"&inc="+(subir?"1":"-1"),
                "POST",
                function(respuesta){
                    if(respuesta==1)
                        funcionOk();
                }
    );    
}

function cvComentarRecurso(idTipoEntidad,idRecurso,comentario,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=14&te="+idTipoEntidad+"&r="+idRecurso+"&comentario="+comentario,
                "POST",
                function(respuesta){    
                    if(respuesta==1)
                        funcionOk();
                    else
                        alerta(respuesta);
                }
    );          
}

function cvGuardarDatos(titulo,descripcion,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=7"+"&titulo="+titulo+"&descripcion="+descripcion,
                "POST",
                function(respuesta){
                    if(respuesta==1)
                        funcionOk();
                    else
                        alerta(respuesta);
                }
    );    
}

function cvGuardarEnMisCuadernos(funcionOk,idCuadernoViaje){
    comLogin(
        function(){
            ejecutarAjax(
                        "/lib/ajax/cuaderno-viaje.php",
                        "a=6"+(idCuadernoViaje?"&cv="+idCuadernoViaje:""),
                        "POST",
                        function(respuesta){
                            if(!isNaN(respuesta))
                                funcionOk(respuesta);
                            else
                                alerta(respuesta);
                        }
            );       
        },
        function(mensaje){
            alerta("Los datos de acceso introducidos no son correctos");
        },
        "Debes iniciar sesión para poder guardar tu cuaderno de viaje"
    );
}

function cvCompartir(idCuadernoViaje,funcionOk){
    comLogin(
        function(){
            ejecutarAjax(
                        "/lib/ajax/cuaderno-viaje.php",
                        "a=9&cv="+idCuadernoViaje,
                        "POST",
                        function(respuesta){
                            if(respuesta==1)
                                funcionOk();
                            else
                                alerta(respuesta);
                        }
            );
        },
        function(mensaje){
            alerta("Los datos de acceso introducidos no son correctos");
        },
        "Debes iniciar sesión para poder compartir tu cuaderno de viaje"
    );
}

function cvGenerarCuaderno(url){
    var params = new Array();
    params.push("gen=1");
    params.push("titulo="+$("#cvTitulo").val());
    params.push("descripcion="+$("#cvDescripcion").val()); 
    params.push("o="+$("#cvOpciones").val());
    url += "?"+params.join("&");
    
    $(".popupCuadernoViajeGenerar .datos").addClass("generando");
    $(".popupCuadernoViajeGenerar .datos").html("Generando Cuaderno de Viaje...");
    setTimeout(function(){cerrarVentana();},8000);
    window.location = url;
}

function cvMenuGenerarCuaderno(idCuadernoViaje){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=5"+(idCuadernoViaje?"&cv="+idCuadernoViaje:""),
                "POST",
                function(respuesta){
                    mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeGenerar");    
                   $(".campoCompacto").click(
                        function(){
                            if($(this).data("act"))
                                $(".campoCvOpciones .elem").show();
                            else{                                     
                                $(".campoCvOpciones .elem").hide();
                                $(".campoCvOpciones .elemCampoCompacto").show();
                            }
                            $(this).data("act",!$(this).data("act"));    
                        }
                    );              
                   
                }
    );    
}

function cvMenuDatosCuaderno(funcionOk,nuevo){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=4"+(nuevo?"&n="+nuevo:""),
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeDatos");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvGuardarDatos($('#cvTitulo').val(),$('#cvDescripcion').val(),function(){cerrarVentana($("#"+idVentana));funcionOk();});
                    });
                    //poner contador en campo de texto del comentario
                    campoFormCaracteresRestantes($('#cvDescripcion'),$('#campoCvDescripcion'),250);                      
                }
    );
}

function cvMenuComentarRecurso(idTipoEntidad,idRecurso,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=13&te="+idTipoEntidad+"&r="+idRecurso,
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoComentarioRecurso");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvComentarRecurso(idTipoEntidad,idRecurso,$("#cvComentarioRecurso").val(),function(){
                                                        cerrarVentana($("#"+idVentana));
                                                        funcionOk();
                                                        window.location.reload();
                        });
                    });   
                    $("#"+idVentana+" .botones .borrar").click(function(){  
                        cvComentarRecurso(idTipoEntidad,idRecurso,'',function(){
                                                        cerrarVentana($("#"+idVentana));
                                                        alerta('Comentario eliminado correctamente');
                                                        window.location.reload();
                        });
                    });                     
                    //poner contador en campo de texto del comentario
                    campoFormCaracteresRestantes($('#cvComentarioRecurso'),$('#campoCvComentarioRecurso'),250);  
                }
    );      
}

function cvMenuMisCuadernos(funcionOk){
    comLogin(
        function(){
            ejecutarAjax(
                        "/lib/ajax/cuaderno-viaje.php",
                        "a=8",
                        "POST",
                        function(respuesta){
                            var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeMisCuadernos");
                            $("#"+idVentana+" .datos li a").click(function(){
                                $("#"+idVentana+" .datos li a").removeClass("sel");
                                $(this).addClass("sel");
                            });
                            $("#"+idVentana+" .ok").click(function(){
                                var sel = $("#"+idVentana+" .datos li .sel");
                                var idCuadernoViaje = null;
                                if(!sel.hasClass("cv")){
                                    sel.removeClass("sel");
                                    idCuadernoViaje = parseInt(sel.attr("class").replace(/cv/,""));
                                    sel.addClass("sel");
                                }
                                cvGuardarEnMisCuadernos(function(idCV){cerrarVentana($("#"+idVentana));funcionOk(idCV);},idCuadernoViaje);
                            });
                        }
            );
        },
        function(mensaje){
            alerta("Los datos de acceso introducidos no son correctos");
        },
        "Debes iniciar sesión para poder guardar tu cuaderno de viaje"
    );
}

function cvEnviarAmigo(emailDestino,email,nombre,comentario,funcionOk,idCuadernoViaje){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=11"+"&emd="+emailDestino+"&em="+email+"&nom="+nombre+"&com="+comentario+(idCuadernoViaje?"&cv="+idCuadernoViaje:""),
                "POST",
                function(respuesta){
                    if(respuesta==1){
                        funcionOk();
                    }else
                        alerta(respuesta);
                }
    );    
}

function cvMenuEnviarAmigo(funcionOk,idCuadernoViaje){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=10",
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeEnviarAmigo");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvEnviarAmigo($("#cvAmigoEmailDestino").val(),$("#cvAmigoEmail").val(),$("#cvAmigoNombre").val(),$("#cvAmigoComentario").val(),function(){funcionOk();cerrarVentana($("#"+idVentana));},idCuadernoViaje);
                    });
                }
    );
}

function cvCargarEnActual(idCuadernoViaje,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=15&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){
                    if(respuesta==1)
                        funcionOk();
                    else
                        alerta(respuesta);
                }
    );           
}  

function cvMenuCargarEnActual(idCuadernoViaje,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=16&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeCargar");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvCargarEnActual(idCuadernoViaje,funcionOk);
                    });
                }
    );
}

function cvEditar(idCuadernoViaje,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=18&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){
                    if(respuesta==1)
                        funcionOk();
                    else
                        alerta(respuesta);
                }
    );           
}  

function cvMenuEditar(idCuadernoViaje,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=17&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeEditar");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvEditar(idCuadernoViaje,funcionOk);
                    });
                }
    );
}
function cvMenuEliminar(idCuadernoViaje,funcionOk){
    ejecutarAjax(
                "/lib/ajax/cuaderno-viaje.php",
                "a=19&cv="+idCuadernoViaje,
                "POST",
                function(respuesta){
                    var idVentana = mostrarPopupHTML(respuesta,"popup popupCuadernoViaje popupCuadernoViajeEditar");
                    $("#"+idVentana+" .botones .ok").click(function(){
                        cvEditar(idCuadernoViaje,funcionOk);
                    });
                }
    );
}    
//FIN CUADERNO DE VIAJE

//COMUNIDAD
function comRecordarPass(classForm){    
    if(classForm==undefined)
          classForm = "form";      
    var mail = $(classForm+" input[name=email]").val();  
    if(mail.length>0){
        var respuesta = ejecutarAjaxSync("/lib/ajax/recordar-pass.php","email="+mail,"POST");
        if(respuesta==1)
            alerta("Hemos enviado un e-mail con tus datos de acceso a tu dirección de correo");
        else
            alerta(respuesta);
    }else
        alerta("Introduce tu dirección de e-mail en el campo &quot;Correo electrónico&quot; para que te enviemos tus datos de acceso");
}         

function comAutentificado(){
    return (ejecutarAjaxSync("/lib/ajax/login.php","v=1","POST")==4);
}

function comLogin(funcionOk,funcionError,mensajeLoginRequerido){
    ejecutarAjax(
                "/lib/ajax/login.php",
                "msj="+mensajeLoginRequerido,
                "POST",
                function(respuesta){
                    if(respuesta==4)
                        funcionOk();                        
                    else{
                        var idPopup = mostrarPopupHTML(respuesta,"popup popupLogin");
                        $("#"+idPopup+" .form .boton").click(
                                                            function(){
                                                                var valores = new Array();
                                                                $("#"+idPopup+" .form input").each(
                                                                                                function(){
                                                                                                    valores.push($(this).attr("name")+"="+$(this).val());
                                                                                                }
                                                                );
                                                                ejecutarAjax(
                                                                    "/lib/ajax/login.php",
                                                                    valores.join("&"),
                                                                    "POST",
                                                                    function(respuesta){    
                                                                        if(respuesta==1){
                                                                            cerrarVentana($("#"+idPopup));
                                                                            funcionOk();
                                                                        }else
                                                                            funcionError(respuesta);
                                                                    }
                                                                );
                                                            }
                        );
                    }
                }
    );
}
//Compartir facebook 
function comMeGusta(idTipoEntidad,idEntidad){
    if(!idTipoEntidad && !idEntidad){
        var css = $(".likeEntidad").last().attr("class").split("_");
        idTipoEntidad = parseInt(css[1]);
        idEntidad = parseInt(css[2]);
    }
    
    ejecutarAjax(
                "/lib/ajax/valora-facebook.php",
                "te="+idTipoEntidad+"&e="+idEntidad,
                "POST",
                function(respuesta){}
    );    
}        
//Compartir Twitter 
function comTweet(idTipoEntidad,idEntidad){
    if(!idTipoEntidad && !idEntidad){
        var css = $(".likeEntidad").last().attr("class").split("_");
        idTipoEntidad = parseInt(css[1]);
        idEntidad = parseInt(css[2]);
    }
    
    ejecutarAjax(
                "/lib/ajax/valora-tweet.php",
                "te="+idTipoEntidad+"&e="+idEntidad,
                "POST",
                function(respuesta){}
    );    
}
//Compartir share
function comShare(idTipoEntidad,idEntidad){
    if(!idTipoEntidad && !idEntidad){
        var css = $(".likeEntidad").last().attr("class").split("_");
        idTipoEntidad = parseInt(css[1]);
        idEntidad = parseInt(css[2]);
    }
    ejecutarAjax(
                "/lib/ajax/valora-share.php",
                "te="+idTipoEntidad+"&e="+idEntidad,
                "POST",
                function(respuesta){}
    );    
}
//Lanzar evento al pulsar en el share y actualizar la valoración respectiva
function eventHandler(evt) {  
    if(evt.type=="addthis.menu.share") {
        //actualizar   
        switch(evt.data.service){
/*            case 'twitter':
                comTweet(); 
            break;
            case 'facebook':
                comMeGusta(); 
            break;   */             
            default:
                comShare(); 
            break;                        
        }
    }
}

var ttIntervalo;
function comEstadCambioForm(){
    if(ttIntervalo)
        clearTimeout(ttIntervalo);
    ttIntervalo = setTimeout(comEstadActualizar,1000);
}

function comEstadActualizar(){
    $("#content .modEstadisticas .bloqueDatos").addClass("cargando");
    $("#sidebar .modEstadisticas .bloqueResumen").addClass("cargando");
    ejecutarAjax(
                "/lib/ajax/comunidad-gen-estadisticas.php",
                "r="+$("#r").val()+"&f="+$("#f").val(),
                "POST",
                function(respuesta){
                    $("#content .modEstadisticas .bloqueDatos").removeClass("cargando");
                    $("#sidebar .modEstadisticas .bloqueResumen").removeClass("cargando");
                    var html = respuesta.split("|*|");
                    $("#content .modEstadisticas .bloqueDatos").html(html[0]);
                    $("#sidebar .modEstadisticas .bloqueResumen").html(html[1]);
                }
    );
}
//FIN COMUNIDAD 

//BLOG
function blogComentar(){
    if(comAutentificado())
        $("#formComentario").get(0).submit();        
    else{
        $(".popupComentar").slideDown();
        if($(".popupComentar .log").attr("href")=="#"){
            $(".popupComentar .log").click(
                                            function(){
                                                comLogin(
                                                        function(){
                                                            $("#formComentario").get(0).submit();
                                                        }, 
                                                        function(mensaje){
                                                            alerta("Los datos de acceso introducidos no son correctos");
                                                        }
                                                );        
                                            }
            ).attr("href","javascript:;");
            $(".popupComentar .new").click(
                                            function(){
                                                window.open("/registro/");
                                            }
            ).attr("href","javascript:;");
            $(".popupComentar .pub").click(function(){$("#formComentario").get(0).submit();}).attr("href","javascript:;");
            $(".popupComentar .cancel").click(function(){$(".popupComentar").slideUp();}).attr("href","javascript:;");
        }
    }
}
//FIN BLOG

//CALENDARIO BLOG
function calendarioVerMes(mes,anyo){
    ejecutarAjax(
                "/lib/ajax/calendario-blog.php",
                "m="+mes+"&a="+anyo,
                "POST",
                function(respuesta){
                    $(".modCalendario .calendario").html(respuesta);
                }
    );   
}

//CALENDARIO NOTICIA
function calendarioVerMesNoticia(mes,anyo){
    ejecutarAjax(
                "/lib/ajax/calendario-noticias.php",
                "m="+mes+"&a="+anyo,
                "POST",
                function(respuesta){
                    $(".modCalendario .calendario").html(respuesta);
                }
    );   
}

function calendarioDesplegarDia(fecha){
    $("#sidebar .calendario .dia"+fecha+" .lista").slideDown().attr("href","javascript:;");
}
//FIN CALENDARIO

//EMPRESARIOS Comparación de datos modificados  
var formCambiado = false;
function cvDatosCambioEstablecimiento(){
      formCambiado=true;
      return formCambiado;
}
function cvDatosCambiados(funcionOk){
        if(formCambiado){
            if(!confirm("Has realizado cambios en la información y no han sido guardados. ¿Seguro que desea seguir sin guardar estos cambios?"))
                return false;
        }  
        funcionOk();   
}
//fin EMPRESARIOS Comparación de datos modificados  
//EMPRESARIOS desplegar servicios Por habitaciones / completo        
function desplegarServicios(){   
    //ocultar servicios Por habitaciones / completo  
    if ($('#listaServicioso25:checked').val() === undefined) {
            $(".idTipoServicio5").fadeOut();
            $(".elemIdTipoServicio5").fadeOut();      
    } 
    if ($('#listaServicioso26:checked').val() === undefined) {
            $(".idTipoServicio4").fadeOut();
            $(".elemIdTipoServicio4").fadeOut();      
    } 
           
    //Alquiler completo  
    $("#listaServicioso25").click(function () {
        if ($('#listaServicioso25:checked').val() !== undefined) {
            $(".idTipoServicio5").show();
            $(".elemIdTipoServicio5").show();
            $(".elemApartado.idTipoServicio5 input").hide();         
        } else {                                                
            $(".idTipoServicio5").fadeOut();
            $(".elemIdTipoServicio5").fadeOut();  
            $(".elemIdTipoServicio5 input:checked").each(function(){ $(this).attr("checked",false);});   
        } 
    });
    
    //Alquiler por habitaciones  
    $("#listaServicioso26").click(function () {
        if ($('#listaServicioso26:checked').val() !== undefined) {
            $(".idTipoServicio4").show();
            $(".elemIdTipoServicio4").show();
            $(".elemApartado.idTipoServicio4 input").hide();         
        } else {                                                
            $(".idTipoServicio4").fadeOut();
            $(".elemIdTipoServicio4").fadeOut();    
            $(".elemIdTipoServicio4 input:checked").each(function(){ $(this).attr("checked",false);});  
        } 
    });    
}
//fin EMPRESARIOS desplegar servicios Por habitaciones / completo  
//EMPRESARIOS filtro archivos        
function pvFiltroArhivos(){   
    $(".buscarArchivos input").keyup(function(){ pvBuscarRegistro();});      
    $(".buscarArchivos .btnBuscar").click(function(){ pvBuscarRegistro();});  
 
    $(".buscarArchivos .btnBuscarTodos").click(
                                function(){                       
                                        $("#busq").val(""); 
                                        $(".boxTodas li").show();  
                                }
    );   
}
function pvBuscarRegistro(){ 
    var reemplazo = {'á':'a','é':'e','í':'i','ó':'o','ú':'u','(':'',')':'',',':'','.':''}; 
    var texto = $.trim($("#busq").val());    
    /* funcion quitar espacios y dejar solo uno - en minusculas*/
    var textoBuscar = texto.replace(/\s+/g," ").toLowerCase(); 
    //quitar caracteres no soportados
    var textoBuscar = textoBuscar.replace(/[áéíóú\(\)\,\.]/gi, function(m){return reemplazo[m];});     
    
    var palabras = textoBuscar.split(" ");     
    var totalPalabras = palabras.length;    
    
    /* reiniciar contador */
    $(".boxTodas li img").data("cont",0);         
    
    if(palabras[0]!=""){  
        /* incrementar coincidencias */  
        for(var i=0; i<totalPalabras; i++){
            $(".boxTodas li img").each(function(){  
                //todo en minúsculas
                title = $(this).attr('title').toLowerCase();
                //quitar caracteres no soportados
                var titleConv = title.replace(/[áéíóú\(\)\,\.]/gi, function(m){return reemplazo[m];});                                                
                $(this).attr('busc',titleConv)
            });        
                  
            $(".boxTodas li img[busc*=\'"+palabras[i]+"\']").each(function(){      
                $(this).data("cont",$(this).data("cont")+1)
            }); 
        }
        /* ver el contador de palabra que coincide y ocultar imagenes que no coinciden */
        $(".boxTodas li").show(); 
         
        $(".boxTodas li img").each(function(){ 
            /*alert($(this).data("cont")+" = total "+totalPalabras);*/  
            if($(this).data("cont")!=totalPalabras)
                $(this).parent().css("display","none");
        
        });  
        $(".buscarArchivos .btnBuscarTodos").css("display","block");                                                                      
    }else{
        $(".boxTodas li").show(); 
    }     
}    

//fin EMPRESARIOS filtro archivos      

//Selector Servicios
function seleccionarTodosServicios(){
    $(".servicios input").each(function(i){  
        var chk = $("#chkElem"+(i+1));    
        chk.attr("checked",true);  
    });
}

function anadirSeleccionadosListado(idDestinoSelector){
    var i=0;
    var sel = $("#"+idDestinoSelector);
    var items = new Array();
    if(sel.val().length>0)
        items = sel.val().split(sepN1);
    var enLista = new Array();
    for(var j=0;j<items.length;j++)
        enLista[items[j]]=true;
    $(".listado input").each(function(){
                                if(this.checked && !enLista[this.value]){ 
                                    if(idDestinoSelector=="archivos"){    
                                        items.unshift(this.value);
                                    }else
                                        items.push(this.value);
                                }     
                            });
    cargarDestinoSelector(idDestinoSelector,items.join(sepN1));
}
// fin Selector Servicios  

// Bucle ofertas home
function bucleOfertas(numItems){   
    $(".ofertasHome ul li").each(function(){$(this).hide();}); 
    //número de items visibles  
    var visibles;
    if(numItems>0)
        visibles = numItems;  
    else visibles = 4;    
    for(var i=0;i<visibles;i++) 
        $(".ofertasHome ul li").eq(i).show();
                             
    if($(".ofertasHome").size()>0){   
        var cont = 0; 
        setInterval(function(e){   
                        var ul = $(".ofertasHome ul");    
                        //quitar los dos primeros elementos
                        for(var j=0;j<2;j++){    
                            var li = $("li",ul).eq(j);     
                            li.fadeOut("normal",function(){  
                               $(".ofertasHome ul li").eq(visibles).fadeIn();
                                //ponemos al final el li borrado     
                                ul.append($(this).clone()); 
                                $(this).remove();
                            });      
                        }                        
                        
                    },
                    3000
        );
    }                 
}  
// Fin bucle ofertas home

// Bucle módulos home
function bucleModuloHome(classModulo,numItems){   
    $("."+classModulo+" ul li").each(function(){$(this).hide();}); 
    //número de items visibles  
    var visibles;
    if(numItems>0)
        visibles = numItems;  
    else visibles = 3;    
    for(var i=0;i<visibles;i++) 
        $("."+classModulo+" ul li").eq(i).show("slow");
                             
    if($("."+classModulo+"").size()>0){   
        var cont = 0; 
        var j=1;
        setInterval(function(e){   
                        var ul = $("."+classModulo+" ul");    
                        //quitar los dos primeros elementos      
                        var li = $("li",ul).eq(0);     
                        li.fadeOut("slow",function(){  
                           $("."+classModulo+" ul li").eq(visibles).fadeIn();
                            //ponemos al final el li borrado     
                            ul.append($(this).clone()); 
                            $(this).remove();
                        });      
                        j++;                     
                        
                    },
                    5000
        );
    }                 
}  
// Fin bucle módulos home
