/* 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 times = 30, speed = 10;
        if (isWebKit) {
            times = 10;
            speed = 10;
        }
        if (isIE && isIE8) {
            times = 5;
            speed = 5;
        }

        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
            var widthHeight = function(dim, cos) {
                return dim[0] * cos + dim[1] + 'px';
            }

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

/*
                if (!e.ims[i].w) alert(im.id)
                if (!e.ims[i].h) alert(im.id)
*/
/*
                im.style.width = widthHeight(e.ims[i].w, cos);
                im.style.height = widthHeight(e.ims[i].h, cos);
*/

                im.style.width = widthHeight([16,32], cos);
                im.style.height = widthHeight([16,32], cos);
                if (im.alternativeImg) {
                    im.alternativeImg.style.width = im.style.width;
                    im.alternativeImg.style.height = im.style.height; 
                }

                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);
/*
                    alert(im.originalImageSrc)
                    im.src = im.originalImageSrc;
*/
                } else  if (e.ims[i].jump == 0) {
                    hideHideShow(im.id, im.alternativeImg.id, im.endImage.id)
                }

            }

            var d = document.images
            var 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);
        }
    }
            )();
}
