gravatar bigger avatar

By znerp Last update Apr 18, 2007 — Installed 651 times.
// ==UserScript==
// @name           gravatar bigger avatar
// @description    enlarges avatars on userscripts.org on mouseover
// @namespace      znerp
// @include        http://userscripts.org/*
// ==/UserScript==

var globalTimer;
var allImages = document.evaluate(
  '//img[contains(@src, "gravatar.com/avatar.php?gravatar_id=")]',
  document,
  null,
  XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
  null);

for (i = allImages.snapshotLength - 1; i >= 0; i--) {
  var thisImage = allImages.snapshotItem(i);
  var popup = thisImage.src.replace(/size=\d\d/, 'size=80');
  if (thisImage.src!=popup) {
    thisImage.alt = i;
    var div = document.createElement('div');
    div.innerHTML = "<div id='popup" + i + "' class='divClass'><img src='" + popup + "'></div>";
    div.setAttribute('mseovr', 'popup' + i);
    div.addEventListener(
      'mouseover',
      function(event) {document.getElementById(this.getAttribute('mseovr')).style.visibility = "visible";},
      true);
    div.addEventListener(
      'mouseout',
      function(event) {
        window.clearTimeout(globalTimer);
        document.getElementById(this.getAttribute('mseovr')).style.visibility = "hidden";},
      true);
    document.body.appendChild(div);
    thisImage.addEventListener(
      'mouseover',
      function(event) {
        var x = event.pageX;
        var y = event.pageY;
        var divID = 'popup' + this.alt;
        globalTimer = window.setTimeout(
          function() { popUp(x,y,divID); },
          500);},
      true);
    thisImage.addEventListener(
      'mouseout',
      function(event) {
        window.clearTimeout(globalTimer);
        document.getElementById('popup' + this.alt).style.visibility = "hidden";},
      true);
  }
}

var css = ".divClass {visibility:hidden;position:absolute;z-index:100;background-color:#fff;}"+
          ".divClass img {border:2px solid black;}";
if (typeof GM_addStyle != "undefined") {
  GM_addStyle(css);
} else if (typeof addStyle != "undefined") {
  addStyle(css);
} else {
  var heads = document.getElementsByTagName("head");
  if (heads.length > 0) {
    var node = document.createElement("style");
    node.type = "text/css";
    node.innerHTML = css;
    heads[0].appendChild(node);
  }
}

function popUp(x,y,divID) {
  objStyle = document.getElementById(divID).style;
  obj = document.getElementById(divID);
  if (objStyle.visibility == "visible") {
    objStyle.visibility = "hidden";
  }
  else {// (objStyle.visibility = "hidden")
    objStyle.left = x + 'px';
    objStyle.top = y + 'px';
    objStyle.visibility = "visible";
  }
}