
if (document.images) {
    (function(){
        var cos, a = /Apple/.test(navigator.vendor), times = a ? 20 : 40, speed = a ? 40 : 20;
        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('\\bpicgrow\\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);
            }
    })();
}
