

/* Expando Image Script ©2008 John Davenport Scheuer

   as first seen in http://www.dynamicdrive.com/forums/

   username: jscheuer1 - This Notice Must Remain for Legal Use

   */



if (document.images){

 (function(){

  var cos, a = /Apple/.test(navigator.vendor), times = a? 10 : 30, speed = a? 30 : 10;

  var expConIm = function(im){

   im = im || window.event;

   if (!expConIm.r.test (im.className))

    im = im.target || im.srcElement || null;

   if (!im || !expConIm.r.test (im.className))

    return;

   var e = expConIm,

   widthHeight = function(dim){

    return dim[0] * cos + dim[1] + 'px';

   },

   resize = function(){

    cos = (1 - Math.cos((e.ims[i].jump / times) * Math.PI)) / 2;

    im.style.width = widthHeight (e.ims[i].w);

    im.style.height = widthHeight (e.ims[i].h);

    if (e.ims[i].d && times > e.ims[i].jump){

     ++e.ims[i].jump;

     e.ims[i].timer = setTimeout(resize, speed);

    } else if (!e.ims[i].d && e.ims[i].jump > 0){

     --e.ims[i].jump;

     e.ims[i].timer = setTimeout(resize, speed);

    }

   }, d = document.images, i = d.length - 1;

   for (i; i > -1; --i)

    if(d[i] == im) break;

   i = i + im.src;

   if (!e.ims[i]){

    im.title = '';

    e.ims[i] = {im : new Image(), jump : 0};

    e.ims[i].im.onload = function(){

     e.ims[i].w = [e.ims[i].im.width - im.width, im.width];

     e.ims[i].h = [e.ims[i].im.height - im.height, im.height];

     e (im);

    };

    e.ims[i].im.src = im.src;

    return;

    }

   if (e.ims[i].timer) clearTimeout(e.ims[i].timer);

   e.ims[i].d = !e.ims[i].d;

   resize ();

  };



  expConIm.ims = {};



  expConIm.r = new RegExp('\\bexpando\\b');



  if (document.addEventListener){

   document.addEventListener('mouseover', expConIm, false);

   document.addEventListener('mouseout', expConIm, false);

  }

  else if (document.attachEvent){

   document.attachEvent('onmouseover', expConIm);

   document.attachEvent('onmouseout', expConIm);

  }

 })();

}
