(function($){var dropShadowZindex = 1;  $.fn.dropShadow = function(options){var opt = $.extend({left: 4,top: 4,blur: 2,opacity: .5,color: "black",swap: false}, options);var jShadows = $([]);  this.not(".dropShadow").each(function(){var jthis = $(this);var shadows = [];var blur = (opt.blur <= 0) ? 0 : opt.blur;var opacity = (blur == 0) ? opt.opacity : opt.opacity / (blur * 8);var zOriginal = (opt.swap) ? dropShadowZindex : dropShadowZindex + 1;var zShadow = (opt.swap) ? dropShadowZindex + 1 : dropShadowZindex;var shadowId;if (this.id) {shadowId = this.id + "_dropShadow";}else {shadowId = "ds" + (1 + Math.floor(9999 * Math.random()));}$.data(this, "shadowId", shadowId); $.data(this, "shadowOptions", options); jthis.attr("shadowId", shadowId).css("zIndex", zOriginal);if (jthis.css("position") != "absolute") {jthis.css({position: "relative",zoom: 1 });}bgColor = jthis.css("backgroundColor");if (bgColor == "rgba(0, 0, 0, 0)") bgColor = "transparent";  if (bgColor != "transparent" || jthis.css("backgroundImage") != "none" || this.nodeName == "SELECT" || this.nodeName == "INPUT"|| this.nodeName == "TEXTAREA") {		shadows[0] = $("<div></div>").css("background", opt.color);								}else {shadows[0] = jthis.clone().removeAttr("id").removeAttr("name").removeAttr("shadowId").css("color", opt.color);}shadows[0].addClass("dropShadow").css({height: jthis.outerHeight(),left: blur,opacity: opacity,position: "absolute",top: blur,width: jthis.outerWidth(),zIndex: zShadow});var layers = (8 * blur) + 1;for (i = 1; i < layers; i++) {shadows[i] = shadows[0].clone();}var i = 1;			var j = blur;while (j > 0) {shadows[i].css({left: j * 2, top: 0});           shadows[i + 1].css({left: j * 4, top: j * 2});   shadows[i + 2].css({left: j * 2, top: j * 4});   shadows[i + 3].css({left: 0, top: j * 2});       shadows[i + 4].css({left: j * 3, top: j});       shadows[i + 5].css({left: j * 3, top: j * 3});   shadows[i + 6].css({left: j, top: j * 3});       shadows[i + 7].css({left: j, top: j});           i += 8;j--;}var divShadow = $("<div></div>").attr("id", shadowId) .addClass("dropShadow").css({left: jthis.position().left + opt.left - blur,marginTop: jthis.css("marginTop"),marginRight: jthis.css("marginRight"),marginBottom: jthis.css("marginBottom"),marginLeft: jthis.css("marginLeft"),position: "absolute",top: jthis.position().top + opt.top - blur,zIndex: zShadow});for (i = 0; i < layers; i++) {divShadow.append(shadows[i]);}jthis.after(divShadow);jShadows = jShadows.add(divShadow);$(window).resize(function(){try {divShadow.css({left: jthis.position().left + opt.left - blur,top: jthis.position().top + opt.top - blur});}catch(e){}});dropShadowZindex += 2;});  return this.pushStack(jShadows);};$.fn.redrawShadow = function(){this.removeShadow();return this.each(function(){var shadowOptions = $.data(this, "shadowOptions");$(this).dropShadow(shadowOptions);});};$.fn.removeShadow = function(){return this.each(function(){var shadowId = $(this).shadowId();$("div#" + shadowId).remove();});};$.fn.shadowId = function(){return $.data(this[0], "shadowId");};$(function()  {var noPrint = "<style type='text/css' media='print'>";noPrint += ".dropShadow{visibility:hidden;}</style>";$("head").append(noPrint);});})(jQuery);
