﻿// enlaces.js
// Funciones para la sustitución de enlaces normales por enlaces en Ajax.

var _ENLACES = new Array();
var _nEnlace = 0;

var _Contenido_Remoto_1 = '#contenidoPagina';
var _Contenido_Remoto_2 = '#ZonaContenidoEstatico';

/*
// enlace
// Carga el enlace indicado en el contenido de la página, mediante Ajax.
// El enlace puede indicarse o bien como una cadena con la url o bien como un 
// número índice sobre el array de enlaces sustituídos de la página.
function enlace(url)
{
    var cargar = true;
    if (typeof(url)=="number")
    {
        try
        {
            url = _ENLACES[url][0];
        }
        catch (ex)
        {
            cargar = false;
            alert ("El enlace " + url + " no está definido.");
        }
    }

    if (cargar)
    {
    
//        new Effect.Fade("contenidoPagina",
//					    {
//						    duration: 0.3,
//						    afterFinish: function ()
//									     {
//                                            new Ajax.Updater({success:"contenidoPagina",failure:"contenidoPagina"},url,
// 					                                         {
// 					                                            method: "GET",
// 					 	                                        encoding: "UTF-8",
// 					 	                                        evalScripts: true,
// 					 	                                        onComplete: function()
//	 					 		                                           {
//	 					 		                                                analizarEnlaces($("contenidoPagina"));
//	 					 			 	                                        new Effect.Appear("contenidoPagina",{duration: 0.3});
//	 					 		                                           }
// 					                                         });
// 					                     }
// 					    });
 					    
    }
}
*/
// analizarEnlaces
// Analiza el contenido del objeto html indicado reemplazando todos los enlaces normales
// como enlaces Ajax, esto es, llamadas a la función enlace().
function analizarEnlaces(objeto)
{
  analizadorEnlaces(objeto,1);
}

function analizarEnlaces2(objeto)
{
  analizadorEnlaces(objeto,2);
}

function analizadorEnlaces(objeto, tipo)
{
//  muestralog('Analizando ' + objeto + ' que se cambiará en ' + contenidoDestino);
//  eliminarEnlaces(objeto);
/*
  $(objeto +" a").mouseover( function()
                             {
                               window.status="Diputación de Huelva";
                               return true;
                             })
                 .mouseout(function()
                           {
                             window.status="Diputación de Huelva"; 
                             return true;
                           });
*/
  var h= 0;
  for (var i=0; i < $(objeto + " a").length; i++)
  {
    var lnk       = $(objeto + " a").get(i);
    var destino   = lnk.target;
    var url       = lnk.href;
    var tieneHash = lnk.hash;
    var ident

    
    if (destino == "NULO")
    {
      //$(lnk).attr("target","_self");
    }
    else if (destino == "NULO_SELF")
    {
      $(lnk).attr("target","_self");
    }
    else if (((destino == "") || (destino == "_self")) && (url != "#"))
    {
      //muestralog(lnk.text + '----> ' +url + ' ------ ' + url.substr(url.length-1,1) + ' --- ' + lnk.hash);
//      if ((!tieneHash) && (url.indexOf("javascript:") == -1) && (url.indexOf("mailto:") == -1) && (url.substr(url.length-1,1)!="#") && (!laURLesVideo(url) && (!laURLesConOverlay(url))))
      if ((!tieneHash) && (url.indexOf("javascript:") == -1) && (url.indexOf("mailto:") == -1) && (url.substr(url.length-1,1)!="#") && (!laURLesVideo(url)))
      {
          if (tipo==1)
            $(lnk).remote(_Contenido_Remoto_1);
          else
            $(lnk).remote2(_Contenido_Remoto_2);
        
        h++;
      }
      else{}
    }

    if (laURLesVideo(url))
    {
//      muestralog('La url ' + url + ' se prepara -- ' + lnk + ' --- ' + $(lnk).attr("href")); 
      $(lnk).attr("rel","#overlay");
      redireccion = '/web/verVideo.aspx?video=' + url;
      lnk.href = redireccion;
//      $(lnk).attr("href",redireccion);
    }
/*
    else
    {
      if (laURLesConOverlay(url))
      {
        $(lnk).attr("rel","#overlay");
        redireccion = url;//.substr(0,url.length-1);
        lnk.href = redireccion;
      }
    }
*/
  }

  if($.browser.msie)
  {
    if (Number($.browser.version.substr(0,1))>=7)
    {
      $("a[rel='#overlay']").colorbox({transition:'none', initialWidth:665, initialHeight:570, width:665, height:570, iframe:true, overlayClose:false});
    }
  }
  else
  {
    $("a[rel='#overlay']").colorbox({transition:'none', initialWidth:660, initialHeight:550, width:660, height:550, iframe:true, overlayClose:false});
//    $("a[rel='#overlay']").colorbox({transition:'none', initialWidth:660, initialHeight:550, width:660, height:550, iframe:true, overlayClose:false, href: redireccion });
  }
  muestralog(objeto + " a " + $(objeto +" a").length + " - " + h);

}

// laURLesVideo
// Comprueba que la url que se está analizando es un video o no.
function laURLesVideo(url)
{
  return (url.substr(url.length-4).toLowerCase() == '.mov')
}


function laURLesConOverlay(url)
{
  return (url.substr(url.length-4) == '.pDF')
}




/*
// analizarEnlaces2
// Analiza el contenido del objeto html indicado reemplazando todos los enlaces normales
// como enlaces Ajax, esto es, llamadas a la función enlace().
function analizarEnlaces2(objeto) //, destino)
{
    eliminarEnlaces(objeto);
    muestralog(objeto + " a -" + $(objeto +" a").length);

    $(objeto +" a").mouseover( function()
                               {
                                 window.status="Diputación de Huelva";
                                 return true;
                               })
                   .mouseout(function()
                             {
                               window.status="Diputación de Huelva"; 
                               return true;
                             });


    for (var i=0; i < $(objeto + " a").length; i++)
    {
        var lnk       = $(objeto + " a").get(i);
        var destino   = lnk.target;
        var url       = lnk.href;
        var tieneHash = lnk.hash;

        if (((destino == "") || (destino == "_self")) && (url != "#"))
        {
            if ((!tieneHash) && (url.indexOf("javascript:") == -1) && (url.indexOf("mailto:") == -1) && (url.substr(url.length-1,1)!="#"))
//            if ((url.indexOf("javascript:") == -1) && (url.substr(0,1)!="#"))
            {
                $(lnk).remote2('#ZonaContenidoEstatico');
            }
        }
        else if (destino == "NULO")
        {
          $(lnk).attr("target","_self");
        }
    }
}

function analizarEnlaces(objeto)
{
    eliminarEnlaces(objeto);
    var enlaces = objeto.getElementsByTagName("a");
        
    for (var i=0; i < enlaces.length; i++)
    {
        var lnk     = enlaces[i];
        var destino = lnk.target;
        var url     = lnk.href;
        
        if ((destino == "") || (destino == "_self"))
        {
            if ((url.indexOf("javascript:") == -1) && (url.substr(-1)!="#"))
            {
                $(lnk).remote('#contenidoPagina');
//                lnk.href = "javascript:enlace(" + addEnlace(url,objeto) + ")";
            }
        }
    }
}
*/


function montarEnlaceConUrlAtras(objeto,hash)
{
  var id  = '_enlace' + Math.round(Math.random() * 1000);
  $(objeto).prepend('<a id="' + id + '" href="' + Base64.decode(hash.replace("##","&&").replace("#","&")) + '"></a>');
  
  if (hash.substr(0,2)=="##")
    $('#' + id).remote2(_Contenido_Remoto_2);
  else
    $('#' + id).remote(_Contenido_Remoto_1);
}

function lanzaUrlConHistory(objeto,url, tipo)
{
  tipo = tipo || 1;
  $(objeto).prepend('<div id="_direccion_Oculta" style="display:none; width:1px; height:1px;"><a id="_enlace_Oculto" href="' + url + '"></a></div>');
  muestralog($(objeto).html());
  if (tipo==1)
    analizarEnlaces('#_direccion_Oculta');
  else
    analizarEnlaces2('#_direccion_Oculta');
  muestralog($("#_direccion_Oculta").html());
  $('#_enlace_Oculto').click();
}


/*
// eliminarEnlaces
// Elimina del array de enlaces los que iban asociados a este objeto.
function eliminarEnlaces(objeto)
{
    var objDOM = $(objeto).get(0);
    var lnk;
    var id = objDOM.tagName + "." + objDOM.id;
    for (var i=0;i<_ENLACES.length;i++)
    {
        lnk = _ENLACES[i];
        if (lnk[1] == id)
            _ENLACES[i] = null;
    }
}
*/