function new_div(clazz) {
    return new Element('div', {'class': clazz});
}

function new_shadow_div() {
    var shadow = new_div('shadow');

    var classes = [
        'top',
        'top-right',
        'right',
        'bottom-right',
        'bottom',
        'bottom-left',
        'left',
        'top-left'
    ];

    classes.each( function(clazz) {
        var div = new_div(clazz);
        div.injectInside(shadow);
    });

    return shadow;
}

function draw_shadow(element) {
    element.addClass('shadowed');
    var shadow = new_shadow_div();
    shadow.injectInside(element);
}

function draw_shadows(elements) {
    elements.each( function(element) {
        draw_shadow(element);
    });
}

function draw_all_shadows() {
    var elements = $ES('div.shadowed');
    draw_shadows(elements);
}

window.addEvent('domready', function() {
    if (window.gecko) {
        draw_all_shadows();
    }
});
