// ==UserScript==
// @name         Twitter Full-sized User Pics
// @description  Display full-sized user pics upon mouse-over
// @include      http://twitter.com/*
// @include      http://*.twitter.com/*
// @namespace    http://iescripts.org
// @date         28-12-2009
// @version      1.4
// @author       Protector one
// ==/UserScript==

(function(){

  function getLoader(origin){
    return function(){if(this.src==window.targetP1){origin.cursor='auto';}};
  }
  function getErrorer(origin){
    return function(){origin.cursor='auto';};
  }
  function omover(){
    im = null;
    var imc = document.getElementById('twittypic'),
        self = this,
        target = this.src.replace(/_[^_.]+(\.[^\.]+$)/i,'$1'),
        ims = imc.style;
    if(window.targetP1 == target) return;
    window.targetP1 = target;
    this.style.cursor = 'wait'
    imc.onload = getLoader(this.style);
    imc.onerror = getErrorer(this.style);
    imc.src = this.src;
    imc.src = target;
    ims.display = 'block';      
    ims.top = (5 + document.documentElement.scrollTop) + 'px';
    if (document.documentElement.clientWidth/2 < event.clientX){
      ims.left = '5px';
      ims.right = '';
    }else{
      ims.right = '5px';
      ims.left = '';
    }
  }
  function omout(){
    var tmp = document.getElementById('twittypic');
    tmp.style.display = 'none';
    window.targetP1 = false;
  }

  // main
  (function(){
    var ni = document.createElement('img'),
        si = ni.style,
        selector = 'img[src*=/profile_images/]';
        //im = document.images;
    ni.id = 'twittypic';
    si.display = 'none';
    si.position = 'absolute';
    si.top = '5px';
    si.right = '5px';
    si.zIndex = '1001';
    document.body.appendChild(ni);
    $(selector).live('mouseover',omover);
    $(selector).live('mouseout',omout);
    /*for(var i=0,j=im.length;i<j;++i){
      if(im[i].src.match('/profile_images/')){
        im[i].onmouseover = omover;
        im[i].onmouseout = omout;
      }
    }*/
  })();

})();
