function supportsBoxShadow() {
  var s = document.body.style;
  return s.WebkitBoxShadow !== undefined || s.MozBoxShadow !== undefined;
}

//$(document.body).addClass("withBoxShadow");

function applyShadow() {
    // IE uses alternative implementation with non-standard CSS filter
    if ($.browser.msie)
        return;
    
    // this doesn't work in old Operas
    if ($.browser.opera && parseFloat($.browser.version) < 9.5 && this.nodeName.toUpperCase() == "A")
        return;

    if (supportsBoxShadow()) // we already got a CSS shadow
        return;
    
    var element = $(this).css('position', 'relative');
    
    var steps = 3, start = 150, end = 239, offset = 1;

    var shadow = [];
    for (var i = 0; i < steps; ++i) {
        var c = parseInt(start + i * (end - start) / (steps - 1));
        var template = '<div class="dynamicallyAddedShadow" style="position:absolute;overflow:hidden;background-color:rgb(' + [c, c, c].join(',') + ');margin:0;padding:0;height:{0};width:{1};{2}"></div>';
        
        shadow.push(format(template, 1 + 'px', '100%',
                           'left:' + (i + 1) + 'px;' +
                           'bottom:' + (-(i + offset)) + 'px'));
        shadow.push(format(template, '100%', 1 + 'px',
                           'top:' + (i + 1) + 'px;' +
                           'right:' + (-(i + offset)) + 'px'));
    }

    element.find("div.dynamicallyAddedShadow").remove();
    element.append(shadow.join(""));
}

