(function(b){var a=1;b.fn.dropShadow=function(d){var e=b.extend({left:4,top:4,blur:2,opacity:0.5,color:"black",swap:false},d);var c=b([]);a=this.css("zIndex")>0?parseInt(this.css("zIndex")):1;this.not(".dropShadow").each(function(){var r=b(this);var q=[];var n=(e.blur<=0)?0:e.blur;var o=(n==0)?e.opacity:e.opacity/(n*8);var h=(e.swap)?a:a+1;var p=(e.swap)?a+1:a;var l;if(this.id){l=this.id+"_dropShadow";}else{l="ds"+(1+Math.floor(9999*Math.random()));}b.data(this,"shadowId",l);b.data(this,"shadowOptions",d);r.attr("shadowId",l).css("zIndex",h);if(r.css("position")!="absolute"){r.css({position:"relative",zoom:1});}bgColor=r.css("backgroundColor");if(bgColor=="rgba(0, 0, 0, 0)"){bgColor="transparent";}if(bgColor!="transparent"||r.css("backgroundImage")!="none"||this.nodeName=="SELECT"||this.nodeName=="INPUT"||this.nodeName=="TEXTAREA"){q[0]=b("<div></div>").css("background",e.color);}else{q[0]=r.clone().removeAttr("id").removeAttr("name").removeAttr("shadowId").css("color",e.color);}q[0].addClass("dropShadow").css({height:r.outerHeight(),left:n,opacity:o,position:"absolute",top:n,width:r.outerWidth(),zIndex:p});var m=(8*n)+1;for(f=1;f<m;f++){q[f]=q[0].clone();}var f=1;var g=n;while(g>0){q[f].css({left:g*2,top:0});q[f+1].css({left:g*4,top:g*2});q[f+2].css({left:g*2,top:g*4});q[f+3].css({left:0,top:g*2});q[f+4].css({left:g*3,top:g});q[f+5].css({left:g*3,top:g*3});q[f+6].css({left:g,top:g*3});q[f+7].css({left:g,top:g});f+=8;g--;}var k=b("<div></div>").attr("id",l).addClass("dropShadow").css({left:r.position().left+e.left-n,marginTop:r.css("marginTop"),marginRight:r.css("marginRight"),marginBottom:r.css("marginBottom"),marginLeft:r.css("marginLeft"),position:"absolute",top:r.position().top+e.top-n,zIndex:p});for(f=0;f<m;f++){k.append(q[f]);}r.after(k);c=c.add(k);b(window).resize(function(){try{k.css({left:r.position().left+e.left-n,top:r.position().top+e.top-n});}catch(i){}});a+=2;});return this.pushStack(c);};b.fn.redrawShadow=function(){this.removeShadow();return this.each(function(){var c=b.data(this,"shadowOptions");b(this).dropShadow(c);});};b.fn.removeShadow=function(){return this.each(function(){var c=b(this).shadowId();b("div#"+c).remove();});};b.fn.shadowId=function(){return b.data(this[0],"shadowId");};b(function(){var c="<style type='text/css' media='print'>";c+=".dropShadow{visibility:hidden;}</style>";b("head").append(c);});})(jQuery);