jQuery.fn.extend({captify:function(n){var a=$.extend({speedOver:"fast",speedOut:"normal",hideDelay:500,animation:"slide",prefix:"",opacity:"0.45",className:"caption-bottom",position:"bottom",spanWidth:"100%"},n);$(this).each(function(){var c=this;$(this).load(function(){if(c.hasInit)return false;c.hasInit=true;var g=false,i=false,d=$("#"+$(this).attr("rel")),j=!d.length?$(this).attr("alt"):d.html();d.remove();var f=(this.parent&&this.parent.tagName=="a"?this.parent:$(this)).wrap("<div></div>").parent().css({overflow:"hidden", padding:0}).addClass("caption-wrapper").width($(this).width()).height($(this).height());$.map(["top","right","bottom","left"],function(k){f.css("margin-"+k,$(c).css("margin-"+k));$.map(["style","width","color"],function(h){h="border-"+k+"-"+h;f.css(h,$(c).css(h))})});$(c).css({border:"0 none"});var b=$("div:last",f.append("<div></div>")).addClass(a.className),e=$("div:last",f.append("<div></div>")).addClass(a.className).append(a.prefix).append(j);$("*",f).css({margin:0}).show();d=jQuery.browser.msie? "static":"relative";b.css({zIndex:1,position:d,opacity:a.animation=="fade"?0:a.opacity,width:a.spanWidth});if(a.position=="bottom"){j=parseInt(b.css("border-top-width").replace("px",""))+parseInt(e.css("padding-top").replace("px",""))-1;e.css("paddingTop",j)}e.css({position:d,zIndex:2,background:"none",border:"0 none",opacity:a.animation=="fade"?0:1,width:a.spanWidth});b.width(e.outerWidth());b.height(e.height());d=a.position=="bottom"&&jQuery.browser.msie?0:0;var l=a.position=="top"?{hide:-$(c).height()- b.outerHeight()-1,show:-$(c).height()}:{hide:0,show:-b.outerHeight()+d};e.css("marginTop",-b.outerHeight());b.css("marginTop",l[a.animation=="fade"||a.animation=="always-on"?"show":"hide"]);var m=function(){if(!g&&!i){b.animate(a.animation=="fade"?{opacity:0}:{marginTop:l.hide},a.speedOut);a.animation=="fade"&&e.animate({opacity:0},a.speedOver)}};if(a.animation!="always-on"){$(this).hover(function(){i=true;if(!g){b.animate(a.animation=="fade"?{opacity:a.opacity}:{marginTop:l.show},a.speedOver);a.animation== "fade"&&e.animate({opacity:1},a.speedOver/2)}},function(){i=false;window.setTimeout(m,a.hideDelay)});$("div",f).hover(function(){g=true},function(){g=false;window.setTimeout(m,a.hideDelay)})}});if(this.complete||this.naturalWidth>0)$(c).trigger("load")})}});
