document.ready() fired twice... Once on load and once when it's wrapped.

document.ready() fired twice... Once on load and once when it's wrapped.

I have a .Net layout and a .Net control.  The layout listens for document.ready() to do what it needs to do and the control also listens for document.ready() to do what it needs to do.

All the layout does is wrap a shadow around it's content (this seems to be the problem) and add an IE class to the body if it's IE.  document.ready() is not fired twice in the layout.

The control does a bunch of stuff on document.ready, but it's only fired once if I remove the shadowWrap call from layout.  If I add the shadowWrap call to the layout it will fire document.ready twice in the control.  Here's a snippet:

In the Product_5 layout:
            $(document).ready(function(){
                Product_5.init();
            });

The Product_5 object:
var Product_5 = {
    init: function() {
        Util.shadowWrap($(".wrapper"));
        Util.ieClass();
    }
};

The shadowWrap function:

    shadowWrap: function(el){
        el.addClass("shadow-mc").wrap("<div class='shadow-ml'/>").wrap("<div class='shadow-mr'/>");
        $("<div class='shadow-tl'><div class='shadow-tr'><div class='shadow-tc'></div></div></div>").insertBefore("div.shadow-ml");
        $("<div class='shadow-bl'><div class='shadow-br'><div class='shadow-bc'></div></div></div>").insertAfter("div.shadow-ml");
    }

Removing the call to shadowWrap will prevent document.ready() from being fired twice in the control (the control is inside .wrapper).  Is this a bug or something done on purpose?  If it's done on purpose, is there a way around it?

Thanks,
-Zach