var Caption = new Class({

    initialize: function(data)
    {
        this.image = data.image;
        if(data.image.tagName != 'img')
        {
            this.image = data.image.getElement('img');
        }
        this.wrapImage(data);
        this.attach();
    },
    
    wrapImage: function(data)
    {
        var dimensions = data.image.getCoordinates();
        var padding = this.image.getStyle('padding');
        var caption = new Element('div').inject(
            new Element('div').setStyles({
                position: 'relative',
                height: dimensions.height,
                overflow: 'hidden'
            }).wraps(data.image)
        ).addClass('caption').set('html', data.caption).setStyles({
            opacity: 0,
            width: dimensions.width,
            margin: padding
        });
        this.wrapper = caption.getParent();
    },
    
    attach: function(data)
    {
        var caption = this.wrapper.getElement('div');
        var fx = new Fx.Morph(caption, { duration: 250, wait: false });
        this.wrapper.addEvents({
            'mouseover' : function()
            {
                fx.start({
                    'height' : 20,
                    opacity: 0.75
                });
            },
            'mouseout': function()
            {
                fx.start({
                    'height' : 0,
                    opacity: 0
                });
            }
        });
    }
    
});

window.addEvent('domready', function(){
    if($('foto'))
    {
        new Caption({
            image: $('foto').getElement('a'),
            caption: 'Bild vergr&ouml;&szlig;ern'
        });
    }
});