// -----------------------------------------------------------------------------------------------
//	Archivo: montes.js
//  Uso    : AJAX
//	Tipo   : Javascript
//	Autor  : Javi Urrutia
//	Versión: 1.0
//	Objeto : Obtención de datos de montes vía AJAX
// -----------------------------------------------------------------------------------------------

// -----------------------------------------------------------------------------------------------
// Función que devuelve los Montes Próximos a uno dado
// -----------------------------------------------------------------------------------------------

function getNearestPeaks()
{

    // Si se devuelve el código de estado 4 es que la petición ha sido cursada
    if(request.readyState == 4)
    {
        // Si la respuesta HTTP es 200 OK devuelve el documento XML
        if(request.status == 200)
        {
            // Obtiene el documento XML
            var xmlDocument=request.responseXML;

            // Obtiene los atributos de la etiqueta nearestPeaks
            var nearestPeaks=xmlDocument.getElementsByTagName("nearestPeaks")[0];
            var atributos=nearestPeaks.attributes;

            var id,pais,radio,datum,tipo;

            for (var i=0;i < atributos.length; i ++)
            {
                if ( atributos[i].name=="id" )
                    id=atributos[i].value;
                else if ( atributos[i].name=="country" )
                {
                    if (atributos[i].value)
                        pais=atributos[i].value;
                    else
                        pais="";

                }
                else if ( atributos[i].name=="radius" )
                    radio=atributos[i].value;
                else if ( atributos[i].name=="datum" )
                    datum=atributos[i].value;
                else if ( atributos[i].name=="type" )
                    tipo=atributos[i].value;
            }

            // Actualiza los elementos de la página

            document.getElementById("montesProximos").innerHTML=request.responseText;
            document.getElementById("radio").innerHTML=radio;
            document.getElementById("linkWayPointMontesProximos").setAttribute("href","waypoint.php?numero="+id+(pais==""?"":"&pais="+pais)+"&radio="+radio+"&TodosMontes=0&tipo=proximos&datum="+datum+"&origen="+tipo);

        }
    }
    else
    {
        var texto="<center><br/><br/>Espere un momento. Obteniendo los datos desde el servidor...<br/><br/><img src='images/loading2.gif'/></center>";
        document.getElementById("montesProximos").innerHTML=texto;
    }

}

// -----------------------------------------------------------------------------------------------
// Función que devuelve los Montes de la misma Sierra
// -----------------------------------------------------------------------------------------------

function getPeaksInSameMountRange()
{

    // Si se devuelve el código de estado 4 es que la petición ha sido cursada
    if(request.readyState == 4)
    {
        // Si la respuesta HTTP es 200 OK devuelve el documento XML
        if(request.status == 200)
        {

            // Obtiene el documento XML
            var xmlDocument=request.responseXML;

            // Obtiene los atributos de la etiqueta nearestPeaks
            var nearestPeaks=xmlDocument.getElementsByTagName("peaksInSameMountRange")[0];
            var atributos=nearestPeaks.attributes;

            var id,pais,datum,allPeaks;

            for (var i=0;i < atributos.length; i ++)
            {
                if ( atributos[i].name=="id" )
                    id=atributos[i].value;
                else if ( atributos[i].name=="country" )
                {
                    if (atributos[i].value)
                        pais=atributos[i].value;
                    else
                        pais="";
                }
                else if ( atributos[i].name=="datum" )
                    datum=atributos[i].value;
                else if ( atributos[i].name=="allPeaks" )
                    allPeaks=atributos[i].value;
            }

            // Actualiza los elementos de la página

            document.getElementById("montesSierra").innerHTML=request.responseText;

            var toolTipMontesSierra,newToolTipMontesSierra;

            if( document.getElementById("linkMostrarTodos").innerHTML=="Mostrar Todos")
            {
              document.getElementById("linkMostrarTodos").innerHTML="Mostrar más cercanos";

              var linkMostrarTodos=document.getElementById("linkMostrarTodos").getAttribute("onclick").toString();
              var newLinkMostrarTodos=linkMostrarTodos.replace("TodosMontes=1","TodosMontes=0");

              if (document.all)
              {
                document.getElementById("linkMostrarTodos").onclick=function() {httpRequest('GET','ajax.php?file=montesSierra&TodosMontes=0&id='+id+'&pais='+pais,true,getPeaksInSameMountRange)};
              }
              else
                document.getElementById("linkMostrarTodos").setAttribute("onclick",newLinkMostrarTodos);

              toolTipMontesSierra=document.getElementById("linkMostrarTodos").getAttribute("title");
              newToolTipMontesSierra=toolTipMontesSierra.replace("todos los montes","los montes más cercanos");
              document.getElementById("linkMostrarTodos").setAttribute("title",newToolTipMontesSierra);

              document.getElementById("linkWayPointMontesSierra").setAttribute("href","waypoint.php?numero="+id+"&TodosMontes=1&tipo=sierra&datum="+datum);

              var tituloMontesSierra=document.getElementById("tituloMontesSierra").innerHTML.split('.');
              document.getElementById("tituloMontesSierra").innerHTML=tituloMontesSierra[0];
            }
            else
            {

              document.getElementById("linkMostrarTodos").innerHTML="Mostrar Todos";

              var linkMostrarTodos=document.getElementById("linkMostrarTodos").getAttribute("onclick").toString();
              var newLinkMostrarTodos=linkMostrarTodos.replace("TodosMontes=0","TodosMontes=1");

              if (document.all)
              {
                document.getElementById("linkMostrarTodos").onclick=function() {httpRequest('GET','ajax.php?file=montesSierra&TodosMontes=1&id='+id+'&pais='+pais,true,getPeaksInSameMountRange)};
              }
              else
                 document.getElementById("linkMostrarTodos").setAttribute("onclick",newLinkMostrarTodos);

              toolTipMontesSierra=document.getElementById("linkMostrarTodos").getAttribute("title");
              newToolTipMontesSierra=toolTipMontesSierra.replace("los montes más cercanos","todos los montes");
              document.getElementById("linkMostrarTodos").setAttribute("title",newToolTipMontesSierra);

              document.getElementById("linkWayPointMontesSierra").setAttribute("href","waypoint.php?numero="+id+"&TodosMontes=0&tipo=sierra&datum="+datum);
              document.getElementById("tituloMontesSierra").innerHTML+=". Se muestran los 10 más cercanos.";
            }

        }
    }
    else
    {
        var texto="<center><br/><br/>Espere un momento. Obteniendo los datos desde el servidor...<br/><br/><img src='images/loading2.gif'/></center>";
        document.getElementById("montesSierra").innerHTML=texto;
    }

}

// -----------------------------------------------------------------------------------------------
// Función que devuelve las localidades Próximas
// -----------------------------------------------------------------------------------------------

function getNearestLocations()
{

    // Si se devuelve el código de estado 4 es que la petición ha sido cursada
    if(request.readyState == 4)
    {
        // Si la respuesta HTTP es 200 OK devuelve el documento XML
        if(request.status == 200)
        {

            // Obtiene el documento XML
            var xmlDocument=request.responseXML;

            // Obtiene los atributos de la etiqueta nearestPeaks
            var nearestLocations=xmlDocument.getElementsByTagName("locations")[0];
            var atributos=nearestLocations.attributes;

            var id,pais,datum,allLocations;

            for (var i=0;i < atributos.length; i ++)
            {
                if ( atributos[i].name=="id" )
                    id=atributos[i].value;
                else if ( atributos[i].name=="country" )
                {
                    if (atributos[i].value)
                        pais=atributos[i].value;
                    else
                        pais="";
                }
                else if ( atributos[i].name=="datum" )
                    datum=atributos[i].value;
                else if ( atributos[i].name=="allLocations" )
                    allLocations=atributos[i].value;
            }

            // Actualiza los elementos de la página

            document.getElementById("localidadesProximas").innerHTML=request.responseText;

            var toolTipLocalidades,newToolTipLocalidades;

            if( document.getElementById("linkMostrarLocalidades").innerHTML=="Mostrar Todas")
            {
              document.getElementById("linkMostrarLocalidades").innerHTML="Mostrar más Cercanas";

              var linkMostrarTodos=document.getElementById("linkMostrarLocalidades").getAttribute("onclick").toString();
              var newLinkMostrarTodos=linkMostrarTodos.replace("TodasLocalidades=1","TodasLocalidades=0");

              if (document.all)
              {
                document.getElementById("linkMostrarLocalidades").onclick=function() {httpRequest('GET','ajax.php?file=localidadesProximas&TodasLocalidades=0&id='+id,true,getNearestLocations)};
              }
              else
                document.getElementById("linkMostrarLocalidades").setAttribute("onclick",newLinkMostrarTodos);

              toolTipLocalidades=document.getElementById("linkMostrarLocalidades").getAttribute("title");
              newToolTipLocalidades=toolTipLocalidades.replace("todas las localidades","las localidades más cercanas");
              document.getElementById("linkMostrarLocalidades").setAttribute("title",newToolTipLocalidades);

              document.getElementById("linkWayPointLocalidades").setAttribute("href","waypoint.php?numero="+id+"&TodasLocalidades=1&tipo=localidades&datum="+datum);

              var tituloLocalidades=document.getElementById("tituloLocalidades").innerHTML.split('.');
              document.getElementById("tituloLocalidades").innerHTML=tituloLocalidades[0];
            }
            else
            {

              document.getElementById("linkMostrarLocalidades").innerHTML="Mostrar Todas";

              var linkMostrarTodos=document.getElementById("linkMostrarLocalidades").getAttribute("onclick").toString();
              var newLinkMostrarTodos=linkMostrarTodos.replace("TodasLocalidades=0","TodasLocalidades=1");

              if (document.all)
              {
                document.getElementById("linkMostrarLocalidades").onclick=function() {httpRequest('GET','ajax.php?file=localidadesProximas&TodasLocalidades=1&id='+id,true,getNearestLocations)};
              }
              else
                 document.getElementById("linkMostrarLocalidades").setAttribute("onclick",newLinkMostrarTodos);

              toolTipLocalidades=document.getElementById("linkMostrarLocalidades").getAttribute("title");
              newToolTipLocalidades=toolTipLocalidades.replace("las localidades más cercanas","todas las localidades");
              document.getElementById("linkMostrarLocalidades").setAttribute("title",newToolTipLocalidades);

              document.getElementById("linkWayPointLocalidades").setAttribute("href","waypoint.php?numero="+id+"&TodasLocalidades=0&tipo=localidades&datum="+datum);
              document.getElementById("tituloLocalidades").innerHTML+=". Se muestran las más cercanas.";
            }

        }
    }
    else
    {
        var texto="<center><br/><br/>Espere un momento. Obteniendo los datos desde el servidor...<br/><br/><img src='images/loading2.gif'/></center>";
        document.getElementById("localidadesProximas").innerHTML=texto;
    }

}