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

