(function(d){d.fn.expander=function(x){var o=d.extend({},d.fn.expander.defaults,x);var p;return this.each(function(){var b=d(this);var a=d.meta?d.extend({},o,b.data()):o;var l,f,g;var n=b.html();var e=n.slice(0,a.slicePoint).replace(/\w+$/,'');f=e.match(/<\w[^>]*>/g);if(f){e=n.slice(0,a.slicePoint+f.join('').length).replace(/\w+$/,'')}if(e.lastIndexOf('<')>e.lastIndexOf('>')){e=e.slice(0,e.lastIndexOf('<'))}var h=n.slice(e.length);if(!d('span.details',this).length){if(h.replace(/\s+$/,'').split(' ').length<a.widow){return}if(h.indexOf('</')>-1){g=h.match(/<(\/)?[^>]*>/g);for(var i=0;i<g.length;i++){if(g[i].indexOf('</')>-1){var q,r=false;for(var m=0;m<i;m++){q=g[m].slice(0,g[m].indexOf(' ')).replace(/(\w)$/,'$1>');if(q==s(g[i])){r=true}}if(!r){e=e+g[i];var t=false;for(var j=f.length-1;j>=0;j--){if(f[j].slice(0,f[j].indexOf(' ')).replace(/(\w)$/,'$1>')==s(g[i])&&t==false){l=l?f[j]+l:f[j];t=true}}}}}h=l&&l+h||h}b.html([e,'<span class="read-more">',a.expandPrefix,'<a href="#">',a.expandText,'</a>','</span>','<span class="details">',h,'</span>'].join(''))}var k=d('span.details',this),u=d('span.read-more',this);k.hide();u.find('a').click(function(){u.hide();if(a.expandEffect==='show'&&!a.expandSpeed){a.beforeExpand(b);k.show();a.afterExpand(b);v(a,k)}else{a.beforeExpand(b);k[a.expandEffect](a.expandSpeed,function(){k.css({zoom:''});a.afterExpand(b);v(a,k)})}return false});if(a.userCollapse){b.find('span.details').append('<span class="re-collapse">'+a.userCollapsePrefix+'<a href="#">'+a.userCollapseText+'</a></span>');b.find('span.re-collapse a').click(function(){clearTimeout(p);var c=d(this).parents('span.details');w(c);a.onCollapse(b,true);return false})}});function w(c){c.hide().prev('span.read-more').show()}function v(c,b){if(c.collapseTimer){p=setTimeout(function(){w(b);c.onCollapse(b.parent(),false)},c.collapseTimer)}}function s(c){return c.replace(/\//,'')}};d.fn.expander.defaults={slicePoint:100,widow:4,expandText:'read more',expandPrefix:'&hellip; ',collapseTimer:0,expandEffect:'fadeIn',expandSpeed:'',userCollapse:true,userCollapseText:'[collapse expanded text]',userCollapsePrefix:' ',beforeExpand:function(c){},afterExpand:function(c){},onCollapse:function(c,b){}}})(jQuery);

