var center_images = {
    images: [],

    find_images: function(key) {
        var allimgs = document.getElementsByTagName("img");
        var j=0;
        for (var i=0; i < allimgs.length; i++) {
            if (allimgs[i].getAttribute("rel")==key) {
                center_images.images[j++] = new centered_image(allimgs[i]);
            }
        }
    },

    init: function() {
        center_images.find_images("center");
        for(var i=0; i<center_images.images.length; i++) {
                center_images.images[i].preload();
                center_images.images[i].onload(function (me) {
                    me.center();
                });
        }
    }
};

function centered_image(img) { 
        this.img = img;
}

centered_image.prototype =  {
        preload: function() {
                var pimg = new Image();
                pimg.src=this.img.src
        },

        onload: function(fp) {
                var me = this;
                Event.observe(this.img,'load', function() {
                    fp.apply(me,[me]);
                });
        },

        container: function() {
                return this.img.parentNode.parentNode;
        },

        getTopMargin: function() {
                var res = (parseInt(this.container().clientHeight) - parseInt(this.img.height))/2;
                return (res >= 0) ? res : 0;
        },

        center: function() {
                this.img.style.marginTop=this.getTopMargin()+"px";
        }
};
center_images.init();
