/**
 * Función que añade la página de PorqueTuVuelves a favoritos.
 */
function CreateBookmarkLink(title, url) {
  if (window.sidebar) { // Mozilla Firefox Bookmark
  window.sidebar.addPanel(title, url, "");
  } else if (window.external) { // IE Favorite
  window.external.AddFavorite(url, title);
  }
}

/**
 * Función que define el valor para una cookie.
 */
function createCookie(name, value, days) {
  if (days) {
  var date = new Date();
  date.setTime(date.getTime() + (days*24*60*60*1000));
  var expires = "; expires=" + date.toGMTString();
  }
  else var expires = "";
  document.cookie = name + "=" + value + expires + "; path=/";
}

/**
 * Función que comprueba si una cookie está definida.
 */
function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}

/**
 * Función que elimina una cookie.
 */
function eraseCookie(name) {
  createCookie(name, "", -1);
}

/**
 * Función para mostrar un menú tooltip.
 */
var menu_tooltip = false;
var menu_tooltip_hook = false;
var event_t;
var ie_first_call = true;

function showTooltipMenu(id, parentid, e) {
  event_t = e;
  if (menu_tooltip) {
    $(id).style.visibility = "hidden";
    menu_tooltip = false;
  }
  else {
    var obj = $(parentid);
    var mouseX = obj.offsetLeft;
    var mouseY = obj.offsetTop;
    while (obj.offsetParent) {
      if (obj == document.getElementsByTagName('body')[0]) {
        break;
      }
      else {
        mouseX += obj.offsetParent.offsetLeft;
        mouseY += obj.offsetParent.offsetTop;
        obj = obj.offsetParent;
      }
    }
    $(id).style.visibility = "visible";
    $(id).style.left = mouseX + "px";
    $(id).style.top = (mouseY - 45) + "px";
    menu_tooltip = true;
    ie_first_call = true;
  }

  // Añadimos un 'listener' al document para poder cerrar el tooltip al hacer click fuera de el.
  crearListenerGlobal(id);
}

/**
 * Función que crea un listener global para el campo argumento.
 */
function crearListenerGlobal(id) {
  if (!menu_tooltip_hook) {
    document.onclick = function(event) {
      if (document.all) {
        event = window.event;
      }
      // Si hemos hecho click fuera y el evento no es el mismo que el de abrir, ocultamos.
      if(clickedOutsideElement(id, event) && (event_t != event) && menu_tooltip) {
        if (!document.all || !ie_first_call) {
          $(id).style.visibility = "hidden";
          menu_tooltip = false;
        }
        if (ie_first_call) {
          ie_first_call = false;
        }
      }
    }
    menu_tooltip_hook = true;
  }
}

/**
 * Detecta si se ha hecho click dentro o fuera del elemento especificado.
 * Funciona añadiendo un listener global al document.
 *
 * @param elemId el ID del elemento a comprobar.
 * @param event evento del raton.
 */
function clickedOutsideElement(elemId, event) {
  var evt = (document.all) ? window.event : event;
  var target = (evt.target) ? evt.target : evt.srcElement;
  if (target != null) {
    if (target.nodeType == 3) {
      target = target.parentNode;
    }
  }
  while (target != null) {
    if (target.id == elemId) {
      return false;
    }
    target = target.offsetParent;
  }
  return true;
}

/**
 * Función que permite utilizar las estadísticas de Google Analytics.
 */
var _contentLanguage = 'es';
var _profiles = ["UA-2834026-5", "UA-11893708-1", "UA-1314559-13"];
var _cet = _cet || [];
_cet.push(['_trackPageview']);
(function(){function k(s,i){var g=s;return function(){return g.apply(i,arguments)}}function c(i,g){this.callback=i;this.frequency=g;this.currentlyExecuting=false;this.registerCallback()}c.prototype={registerCallback:function(){this.timer=setInterval(k(this.onTimerEvent,this),this.frequency*1000)},execute:function(){this.callback(this)},stop:function(){if(!this.timer){return}clearInterval(this.timer);this.timer=null},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();this.currentlyExecuting=false}catch(g){this.currentlyExecuting=false;throw g}}}};function l(g){this.profiles=g||[]}l.prototype={push:function(){for(var g=0;g<this.profiles.length;g++){var s=this.profiles[g];_gaq.push(["_setAccount",s]);_gaq.push(arguments[0])}}};function n(u){var g=document.getElementsByTagName("a");for(var s=0;s<g.length;s++){u(g[s])}}function q(u){var g=document.getElementsByTagName("area");for(var s=0;s<g.length;s++){u(g[s])}}function t(s){var g=s.getAttribute("href");var i=/^https?:\/\//i;if(g&&g.indexOf(location.host)==-1&&i.test(g)){s.onclick=function(){_cet.push(["_trackPageview",g.replace(i,"/outgoing/")])}}}function b(s){var g=s.getAttribute("href");var i=/\.(doc|docx|pdf|xls|ppt|zip|gz|bz2|rar|txt|vsd|vxd|js|css|exe|wma|mov|avi|wmv|mp3|mp4|doc|exe|gz|mp3|pdf|pps|ppt|rar|tgz|tif|xls|zip)/i;if(g&&i.test(g)){s.onclick=function(){_cet.push(["_trackPageview",g])}}}function o(s){var g=s.getAttribute("href");var i=/^mailto:/i;if(g&&i.test(g)){s.onclick=function(){_cet.push(["_trackPageview",g.replace(i,"/mailto/"+g.replace(i,""))])}}}setTimeout(function(){n(t);q(t);n(b);q(b);n(o);q(o)},3000);var p=(typeof _contentLanguage=="function")?_contentLanguage():window._contentLanguage||"es";_gaq=window._gaq||[];_profiles=window._profiles||["UA-2834026-1"];var f=window._cet||[];_cet=new l(_profiles);_cet.push(["_setCustomVar",1,"Content-Language",p,3]);for(var e=0;e<f.length;e++){_cet.push(f[e])}_cet.push(["_setVar","content_language="+p]);function a(){var g=document.location.hash;if(d!=g){_cet.push(["_trackPageview",[location.pathname,location.search,g].join("")]);d=g}}function m(i){var g=document.title;document.title=g+"["+p+"]";_cet.push(["_trackPageview",i]);document.title=g}var d=document.location.hash;var j=new c(a,1);var h=document.createElement("script");h.type="text/javascript";h.async=true;h.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(h,r)})();

function urchinTracker(page) {
  var page = page.replace(/\.html(\w+)$/, ".html#$1");
  _cet.push(['_trackPageview',page]);
}

FastInit.addOnLoad(analyze);
