Source for "inYOf4ceBook"

By znerp
Has 33 other scripts.


// ==UserScript==
// @name          inYOf4ceBook
// @namespace     znerp
// @description   Displays the pictures larger when you roll over smaller ones on facebook.com
// @include       http://*facebook.com*
// ==/UserScript==

// Original script by: Justin Rosenthal (justin.rosenthal at gmail)
// Original modification by znerp.
// Further modification by znerp.

loading = "data:image/gif;base64,R0lGODlhIAAgAPYAAMzM%2F2aZzMnK%2FcDF%2BLnC9brD9cXI%2BsrL%2FcjJ%2FK%2B98JCt4YCm"+
          "2YSo25y05rvD9sfJ%2FLXA8oSo2meZzHGe0b%2FF%2BMPH%2BqS366i67MbJ%2B5yz52%2Bd0Xuj1rC98L7F973E9paw5H2k13Wg"+
          "03eh1Ki57ZSv42ubznOf0qm67Yiq3MTH%2Bpuz5nKe0mqazqq77XCe0bXA826c0GmazXSg05qz5bO%2F8n6k2Gycz5Sw4qC26J%2"+
          "B16G%2Bd0J20566973ii1bC98aC16YCm2LzD9qe57LK%2F8bbB87fB9Imq3XOf056155iy5JOv4pix5WiazbG%2B8au77pex5KG2"+
          "6Y%2Bt4JCu4K28773E94ys3qy776y77pWw47jB9Jmy5Yip3Xmi1bS%2F8sHG%2BMnK%2FMXI%2B8HG%2BXag1Iyr34ur3sLH%2BZ"+
          "Ku4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
          "AAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2Fh1CdWlsdCB3aXRoIEdJRiBNb3ZpZSBHZWFyIDQuMAAh%2FhVNYWRlIGJ5IEFqYXhM"+
          "b2FkLmluZm8AIfkECQoAAAAsAAAAACAAIAAAB%2F%2BAAIKDhIWGh4iJiouMjY0HhggpAo6GKQQ0BSmDAhwzBJWEHioMNQwNQZAI"+
          "OUAJoYIVHysStCYfFQcHDjwVhRUdD4kCCSC0xhsJkAC5hClLRk4IiA8WIca1FtKHBBslCgaICBci1xIhJ5SHFc%2FRiAcEDCzXDE"+
          "TK6h7BiQYjCxo2LguEYHhV6AAGDy1UkNjhAxzBQQggZCCRgcMAA%2BkcMeOUIIKGEgBfvHJgwQKFQQMUlLuRr1GFJxNM7HBIYEG5"+
          "Bb0cUTBCS0HOAgzKMcjZCAOUGgtGDARgoMEEYy5wZGxkgAgRh8scKNhgYgOJkw8LUuBwIoEDjGEPPXhhIQcve4mYNrqDgELGBBA%"+
          "2FNsUlYoHGUnUkYBgDMiQuhxouNmRD1AFFDGMhRihDgEEbUxIlaEWhgqiCgsy0QPgAIKAIkiQncmJQAYNJCSlEC3bUoKPHjAG6jM"+
          "Ao0cMCuHdGahiZMrXQgwQzPljocECcDGNGPAg64KFJAcuIBFSokA%2BBkCO0SkQnBDcUAd28LfxNS5rGDCUm2RcSYIC7o0AAIfkE"+
          "CQoAAAAsAAAAACAAIAAAB%2F%2BAAIKDhIMHFVRUKQeFjY6ODxBJKChLLw%2BPmY0CNEYaEhIaRhACmqYAFUsToKATSRWnhQYOBB"+
          "UCQUZMrKBGQbGCBw4NKAxYTURGuxIlvb8AAySrEjooTknSoC6vghUVjI8CPBu7Exk8KDCgNltDpalJA5kIQiHKJBVFWgwMMwQI3F"+
          "GiOMgkwMo4VityYEKQIgWCbwBuBSmViYKSTxJgMIDgTN6LJwwiKEiAoWMjDAWGEAlCoNY%2Fk4QwODGyAIUFWzALHRgSoQSoDScg"+
          "xkIAwQIBig9%2BYCtBApOzDkZCKIAF4AGOpU07eogig0Q8AAea9JTAYkMLoacQdDFKEYABJ1Wcat7MiRYAyiEEDOTUJOCAAAwP6u"+
          "51ywEJFH%2BnHjjke2XBiiNRsggelMICiRElH1VQkE7CEShOHR2w0qNEjSYVo7CagCRzxLZgR5iQwGVKJgw4RDCBsSBBqQMFhAgp"+
          "0LaDkghLvmrGEUXKFb0APEgxsSIKFUIVapk6gIECTrA8eoDqwWOyySEgQIEYYr5jhRwhc1AdjL1Ikfn0BwcCACH5BAkKAAAALAAA"+
          "AAAgACAAAAf%2FgACCg4SFAAeGiYqJBxVFXUEPi5OGBw5LCzVGIxWUngAUTysSEiVALZIHDxgIng8DBQMIAj5ATKQSOh8DGEQWOC"+
          "cOAosYTgpbCjwVLVy4pVEEJ1siJhsKL1%2BJtAslJToMCU0Rzi5PFxEluC4KVIkGDTq4JjlBKkekLBFOGSbOEgscEBVKkQQGLg0Z"+
          "DFSwYITBhy4VlsRztqHFsEIITnCJIYEJCCeIDijEAOABlHu4WADxcbFQBRULekTIMUBRFxQ25H3ooAhBhSYthlQQaAjDFSM9Qmy4"+
          "QaSVIQQYQhLtWcCJEB4UpgrCQECIkAItPSGYpa3JlhAyjED4VEhVtkEGtVRoIKVBi1O2ADxAcWJgUAUS6UopuMuWBopdgxBY4NJt"+
          "g4WwnypwaEqoAg4jRizUxDvpQAoPDjpxHk3aEwYDWksPOkAAyRIfkiilIOAlNaEOUTTAAAi50IMcNZRQmARhAykTUGIrSqEARoQi"+
          "k4JsgVHi490HFIYOEnBFChTRih44iZJ5MwAMI6IkIUDUJ0lKCCgE6TvIwbgjOd6rJlSAQYkjOOi3nyAGXKAeewMWgkF2hCVIWiAA"+
          "IfkECQoAAAAsAAAAACAAIAAAB%2F%2BAAIKDhIUHAgeFiouMggYEU00UiY2VhQ8XWxtASwSUlpUHRAwlEhJiGRWgighgCIIILWKm"+
          "EiVRDgIVRRBBD5YDLRkXQQIITiK0tgUEKgwLUS0pjRUqGxo9SR0HHmMwtRsWL1hHpiURU6%2BLRQu0NQkACE0KCwwWHjw1tBIaSa"+
          "qLLzWYmNpgRdCBCh0oPBDQooc%2BWx4YVVBgooSJKAQYNVlQypSJGf4UHXihwsiSJr4WDdDSI4YEGCg4pFt00EGFmYoEOMhhhIEC"+
          "IUFS4Fy1CEOQLldwLMlwZcAnMB0GDLV0AIKCHi5MAEHibwCOLUZaGCAKoAIJF%2Fo2XAAgYAqIlwy1MhIlkE8fDAXwLIQY6IMsAY"+
          "cPyQA4QAPFhCMKgpANEoGFPh1JBKXg0QAHkamNHuRoaQoGgyGDEKQw8Imohx0LemyIcmUsWUYHuziZQgDDa1AHSiuqUCCMbkaIQH"+
          "VYskCBJ0tBkCTAPOjAFS6nLKRslGCBCtewfUTQAeTKTAEpbBMCRkSApRQtSAgJKeBFAwshBQUHhaDCg08GVByJ0OX37UEPWFADRv"+
          "9VQgEHL4hXIHD%2BLVhgIAAh%2BQQJCgAAACwAAAAAIAAgAAAH%2F4AAgoOEhYaHiIkAGEFEQQ%2BKkYUPPFERCjwYkpIHBUYwEj"+
          "BRRQeDpZsID6cHPhsSr0A8AgAIHUVBmokHDhcWRJAHLxElEiUMXQIGCQoMUSMViR1YPTJREKUVP0BiCxYVCENbOqELVpCHQzWvPR"+
          "bnFRwWTdAYPzKvEisz0IYHRMMSG06cE3QKgIEcR%2B65eDIAUQoLKCI06FCwEAIeC0owKQFCSC5%2BFYjQGFDRUAULDDZE2EFR0Y"+
          "GShwRUeGGFB4EBGGBuAplgxxILBBAUerlzEIIWKExoEKGAwKkHRCxY2bezgxFir0xkSAFglwIxIC4MlAShx71iRjp0hbBAggsVXM"+
          "h3EnF1r0QUKoI8JKnBYIrQnQOijHslBkkuAR18vDBQlFaCKlxCgEhSoOABAToRHTAQBEILKD9aBJnVmBACAjmioFBgwUHO0oWCYB"+
          "HxCsYCIXEPHejwwktmBBY2MLknigBpQx0%2BLEBCtZABLYPvgbByvBCBLRMUqD2UYkn0VzWmVCdU4cKNTIQEvAbO5awOI6QSPfiW"+
          "%2FgVQQUGe9LBRQkME3KU9AJETpQhQAA5RGKHACc3tJIB9DphSgQMFUPBRaQKoAtuGHHYYCAAh%2BQQJCgAAACwAAAAAIAAgAAAH"+
          "%2F4AAgoOEhYaHiImCBw9fio%2BHGC9CUxQCkJgHXUY9QDkDmJAPUCYSJVtEB4MHqpAHl4MPFjKmRgSqBxQvRBWtiAZdV0GwAkVm"+
          "IAwWFQAHBEoLETNBvoUCCVsgSR6DCA5TEL0AKUi0EhtCGIgYDRMSCz7UhRQKJRISK1rLhwgtET0KtxJVaFCKBRdlAq9Y6PJAEQII"+
          "UjbUwEIA1qEDCDBYTPSAwBUeDhqGysTqwYONIxEhCHLlxAsDhA5gqIAgJQABEKJw6ZEMJrMKQmY0ERlqwJN2plBAEIRgCAoZH0CN"+
          "JICinr0eJwYRUBABir5QQaJYZQKCB7cCXaSOTCEEiA4YIsk%2BdCgUz9UDDxaiRNlRpKbNQQIG%2BBjRogsBAhVQpjwQJMOCHiBu"+
          "MHxUt1AKCxvsSQiRZK5AHgT8AgBTYNeALwWiwNAsIcKQyjeHMMhQhhmFHwy4gFCQoElV1guawGaMZAqGAxUwa55g5MKNFZphRCGg"+
          "6ECKhjh%2Fa5aRoUWVIzomRLiQIpQAHjVYS4CBxcGQHQqSTPkKSUCTCExY65hBs0KHCumkFIQSLmgWAwgtEPUXAA80YYQJJcAAgg"+
          "qeLRjLCxlEocQFHShWSCAAIfkECQoAAAAsAAAAACAAIAAAB%2F%2BAAIKDhIWGh4iJiouMAhUdKQeMk4IFGQoWFZSMCBYbGigQkp"+
          "uJnSIlCzSjABgUFA%2BMGGGwgwRJRlCaghUWUgpOKYoGV1o8GIMIFAUVAoIHXQwwLkZEzYgERkcKQYoPIyESEjU8CIkDKhFIA4rP"+
          "DC4mUUWrhgIOHEHWiQZOJE%2FGiwcEzEv0gMIAWqQSKuw2gIKBgQAgTqogJEqUHx5WPXAAQdemB06AwJCwAYqBQQN2RGkiMVGFDC"+
          "7ClYhCZVCKEzsItERk4Ac4CS6UeGRVoRypAy%2Bi9BCBosUxQwF3GnoA4UcOHkMFCaDgY8QVAicXCRCAIEUFhIPqqVjAZUOUK2HR"+
          "D6UokqBjywpIepQIp8EIjXyEKowwUoNBjg4QD9BAEa5xiBwVDoDxUhQAAg4RRpbYYCFYIQRTasRoLEEDFgc0VBjBFKQClJ8SdCjp"+
          "AHUIA9ISViyZYsREiRJcVBCx0KPxhA%2B0DXl4YoKJzAUWMsggvaAFByMuSsAAMiIuIQRDonCZECIClCEkdJAWYWHAFCkojFigkA"+
          "jD8Bk5priasYL0hhYIYEBAFwRExg4GFaRQzgM8LLBXblIQMEhAC6VgwRYb1KDAEGgtJIh9V3DQgVGKBAIAIfkECQoAAAAsAAAAAC"+
          "AAIAAAB%2F%2BAAIKDhIWGh4iJiouMAAdfB42SAA8EPh2Rk4tBTyhQFZqLRCghHwOEDwYPjY%2BZghUWTzwYgxUtDS2gigIdPgOu"+
          "AikUtIICQwwmDAkIigYWWy3EiAhOXBIbF6uJD007RMyJBwUKESQErogYFdqKCJYE7IUHAggCB%2Bi79ukOPlZdFAJCHXowBEsEIC"+
          "h2eMC36AAGDAEBCCASZYUECSVE5NDVyJ2FHD5ApbDQ46LJCEQYIgqCRcSRLRwQDPjgwuRFLhxUGjowZMFFMT8MVGhgwqYEEE0iNi"+
          "RgREcJEEIePLgSoYRJGAoWskoxIgqKDA7udUBSYwIMGQymSGtUgUiXDuDgeJ1QgUWFBR8FKihldM%2FQgwoFTnzYEgUHgb2FBFTo"+
          "oDcRghdRjpSAwUVLh2lEdijI8A1RChxHbAKZAo7QAQdYJB9RUEBlhSc6bIqwUCFFEAJUVgnw4fPiAh6lCVXIUPQikw0jglyQguJD"+
          "EwwIhlTFuMBH8EEIODDQwUTC6iYjFsCQYCLKiwcdVGwwsWGJ1kO2okRgQIIDAZomuVgwgKCAhSUWEHCdaRUQwEETDtimRGwX9QCF"+
          "AQAgUAEFjS0iwIWRwNJDdyVEwEM8AkVYwBJAcMGABRSEaAgvV1wQkk6EBAIAOwAAAAAAAAAAAA%3D%3D";
function sqr(x) { return (x*x) }

function inYoFace () {
  if (!document.getElementById("inYOfac3Book")) {
    eventThingX = 0;
    eventThingY = 0;
    var globalTimer;
    var newDiv = document.createElement('div');
    newDiv.setAttribute('id', 'inYOfac3Book');
    document.body.appendChild(newDiv);
    newDiv.addEventListener(
      'mouseover',
      function(event) {
        this.style.display = "inline";
      },
      true);
    newDiv.addEventListener(
      'mouseout',
      function(event) {
        window.clearTimeout(globalTimer);
        this.style.display = "none";
      },
      true);
    newDiv.addEventListener(
      'mousemove',
      function(e) {
        if (sqr(eventThingX - e.pageX) + sqr(eventThingY - e.pageY) > 1337) {
          window.clearTimeout(globalTimer);
          this.style.display = "none";
        }
      },
      true);
  } else {
    newDiv = document.getElementById("inYOfac3Book")
  }
  var allImages = document.evaluate("//img[starts-with(@src, 'http://profile.ak.facebook.com/')]|"+
                                    "//img[starts-with(@src, 'http://photos')]",
                                    document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  for (var i=allImages.snapshotLength-1; i>=0; i--){
    var thisImage = allImages.snapshotItem(i);
    var src = thisImage.src;
    if ((src.indexOf('static') == -1) && /[tsq](\d+_)+\d+\.jpg/.test(src.slice(src.lastIndexOf('/') + 1, src.length))) {
      thisImage.addEventListener(
        'mouseover',
        function(event) {
          title = this.getAttribute('title')
          if (title) title = title.replace(/'/g, "'");
          fullsize=this.src.substring( 0, this.src.lastIndexOf('/') + 1 ) + 'n' + this.src.substring( this.src.lastIndexOf('/') + 2, this.src.length );
          thisImage = this;
          globalTimer = window.setTimeout(
            function (thisImage) {return function(result) {
              newDiv.setAttribute('style', 'background:url('+loading+') no-repeat;min-height:32px;min-width:32px;position:fixed;z-index:1000;top:20px;left:20px;background-color:#F7F7F7;border:1px solid #3B5998;');
              if (title) newDiv.innerHTML = "<a href="+thisImage.parentNode.href+"><img title = '"+title +"' style = 'max-height: "+ (parseInt(window.innerHeight) - 40) +"px; display:block; cursor: crosshair;' src='" + fullsize + "'></a></div>";
              else newDiv.innerHTML = "<a href="+thisImage.parentNode.href+"><img style = 'max-height: "+ (parseInt(window.innerHeight) - 40) +"px; display:block; cursor: crosshair;' src='" + fullsize + "'></a></div>";
              newDiv.style.display = "inline";
            }}(thisImage),500
          );
        },
        true);
      thisImage.addEventListener(
        'mouseout',
        function(event) {
          window.clearTimeout(globalTimer);
          newDiv.style.display = "none";
        },
        true);
      thisImage.addEventListener(
        'mousemove',
        function(e) {
          eventThingX = e.pageX;
          eventThingY = e.pageY;
        },
        true);
    }
  }
}
document.getElementById("content").addEventListener('DOMNodeInserted', inYoFace, true);
//document.addEventListener('click', function() { window.setTimeout(inYoFace, 1000);} , true);
window.addEventListener('load', inYoFace, true);