var ecLog = {
  server: 'medicion.ecliente.com',
  autoextensions: {
    "pdf": 1,
    "doc": 1,
    "dot": 1,
    "dotx": 1,
    "xls": 1,
    "xlsx": 1,
    "ppt": 1,
    "pptx": 1,
    "zip": 1,
    "rar": 1
  },
  extensionRegex: /([^\/]+?)\.(\w+)(\?.*)?(\#.*)?$/i,
  linkLogger: function(e) {
    if (!e) e = window.event;
    if (e.preventDefault) {
      e.preventDefault();
    } else {
      e.returnValue = false;
    }
    
    var sUrl = ""
    if (this.href && this.href != "") {
      sUrl = this.href;
    }
    
    // En explorer nos llega por el window.event
    if (sUrl == "" && window.event) {
      var elemento = window.event.srcElement;
      while ( elemento.tagName.toLowerCase() != 'a' &&
              typeof elemento.parentNode != 'undefined' &&
              elemento.parentNode != null ) { // el origen del evento es el elemento mas inerno, subimos hasta el ancla
        elemento = elemento.parentNode;
      }
      sUrl = elemento.href || "";
    }
    
    if (sUrl != "") {
      ecLog.jump(sUrl, true);
    }
    return false;
  },
  checkLinks: function() {
    var links = document.getElementsByTagName("a");                                  // Buscamos todos los "A"
    for (var i = 0; i < links.length; i++) {                                         // Los recorremos
      var sUrl = links[i].href;
      var aParts = sUrl.match(ecLog.extensionRegex)                                  // Partimos la URL
      var sExtension = (aParts && aParts.length > 1 ? aParts[2] : "").toLowerCase(); // Obtenemos la extensión
      if (ecLog.autoextensions[sExtension]) {                                        // Es una de las extensiones que nos interesa?
        var sOnclickHandler = "";
        for (var ii = 0; ii < links[i].attributes.length; ii++) {                    // Buscamos en todos los atributos del "A"
          if (links[i].attributes[ii].name.toLowerCase() == "onclick") {             // Si es el "onclick"
            sOnclickHandler = links[i].attributes[ii].nodeValue || ""                // Nos quedamos con el HTML
            break;                                                                   // Listo!
          }
        };
        if (sOnclickHandler.indexOf("ecLog.jump") == -1) {                           // Si no tiene puesta la medición la ponemos
          ecLog.addEvent(links[i], "click", ecLog.linkLogger);                       // No -> La ponemos nosotros
        };
      }
    }
  },
  addEvent: function(el, ev, fn) {
    if (el.addEventListener) {
      el.addEventListener(ev, fn, false);
    } else if (el.attachEvent) {
      el.attachEvent('on' + ev, fn);
    }
  }
};
ecLog.addEvent(window, "load", ecLog.checkLinks);

ecLog.getReferrer = function ()
{
   var referrer = document.referrer;
   var idx;
   if ( ( idx = referrer.indexOf ( '?_referrer=' ) ) == -1 )
   {
      idx = referrer.indexOf ( '&_referrer=' );
   }
   if ( idx == -1 )
   {
      return referrer;
   }
   referrer = referrer.substr ( idx + '&_referrer='.length );
   if ( ( idx = referrer.indexOf ( '&' ) ) != -1 )
   {
      referrer = referrer.substr ( 0 , idx );
   }
   if ( referrer.indexOf ( 'http://' ) == -1 && referrer.indexOf ( 'https://' ) == -1 )
   {
      referrer = 'http://' + referrer;
   }
   return referrer;
}

ecLog.jump = function ( link , popup , name , features )
{
   if ( this.t )
   {
      window.clearTimeout ( this.t );
   }
   this.click = new Image();
   this.click.src = 'http://' + this.server + '/' + link.substring ( 7 ) + '?' + 'referrer=http%3A//' + escape ( this.url ) + '&t=' + ( new Date() ).getTime();
   this.name = name;
   this.features = features;
   this.link = link;
   this.other = popup;
   this.go = false;
   this.cont = 0;
   if ( this.other )
   {
      window.open ( link , name , features );
   }
   else
   {
      this.t = window.setTimeout ( "ecLog.doJump()" , 1000 );
   }
}

ecLog.doJump = function()
{
   if ( ++this.cont == 5 )
   {
      this.go = true;
   }
   if ( this.link )
   {
      if ( this.click.complete || this.go )
      { 
         if ( this.other )
         {
            window.open ( this.link , this.name , this.features );
         }
         else
         {
            top.location.href=this.link;
         }
      }
      else
      {
         this.t = window.setTimeout ( "ecLog.doJump()" , 1000 );
      }
   }
}

if ( typeof ecPath != 'undefined' && ecPath != null && ecPath != '' )
{
   ecLog.url = ecPath;
}
else
{
   ecLog.url = window.location.host + window.location.pathname;
}
ecLog.image = new Image();
ecLog.image.src = 'http://' + ecLog.server + '/' + ecLog.url + '?referrer=' + escape ( ecLog.getReferrer() ) + '&t=' + ( new Date() ).getTime();
