$.fn.boxShadow = function(o){
    if (!o) return; // если нет параметра - выходим
    var str = o.split(' '), // делим введенную строку
    x = parseInt(str[0]), // получаем отступ сверху
    y = parseInt(str[1]), // и снизу
    blur = 0, // значения по умолчанию
    color = '';
    if (str.length == 3) { // если было передано 3 параметра
        color = str[2]; // третьим параметром будет цвет
    } else { // иначе
        blur = parseInt(str[2]); // третьим параметром будет размытие 
        color = str[3]; // а четвёртым цвет
    }
    return $(this).each(function(){ // для каждого элемента
            var box = $(this), // находим блок, с которым будем работать
            off = box.offset(); // вычисляем его координаты
            
            box.css({position:'fixed',zIndex:1}) // задаём свойства
            
        .after('<div id="had_consult_div"></div>') // вставляем блок, который будет исполнять роль тени
        .next() // находим его
        .css({ // добавляем ему следующие свойства
            width:box.width() + parseInt(box.css('padding-left')) + parseInt(box.css('padding-right')), // устанавливаем ширину
            height:box.height() + parseInt(box.css('padding-bottom')) + parseInt(box.css('padding-top')), // устанавливаем длину
            position:'fixed', // абсолюное позиционирование
            zIndex:0, // прячем под основной слой
            backgroundColor:color, // устанавливаем цвет тени
            left:off.left + x - blur + 'px', // сдвиг слева
            top:off.top + y - blur + 'px'}); // сдвиг сверху
        if (blur) box.next() // если есть размытие, находим тень
            .css('filter','progid:DXImageTransform.Microsoft.Blur(pixelradius=' + blur + ', enabled="true")'); // и размываем её
    });
};
