(function(h,g,l){var k=g.event,j;k.special.smartresize={setup:function(){g(this).bind("resize",k.special.smartresize.handler)},teardown:function(){g(this).unbind("resize",k.special.smartresize.handler)},handler:function(f,e){var n=this,m=arguments;f.type="smartresize",j&&clearTimeout(j),j=setTimeout(function(){jQuery.event.handle.apply(n,m)},e==="execAsap"?0:100)}},g.fn.smartresize=function(b){return b?this.bind("smartresize",b):this.trigger("smartresize",["execAsap"])},g.Mason=function(b,d){this.element=g(d),this._create(b),this._init()};var i=["position","height"];g.Mason.settings={isResizable:!0,isAnimated:!1,animationOptions:{queue:!1,duration:500},gutterWidth:0,isRTL:!1,isFitWidth:!1},g.Mason.prototype={_filterFindBricks:function(d){var c=this.options.itemSelector;return c?d.filter(c).add(d.find(c)):d},_getBricks:function(d){var c=this._filterFindBricks(d).css({position:"absolute"}).addClass("masonry-brick");return c},_create:function(p){this.options=g.extend(!0,{},g.Mason.settings,p),this.styleQueue=[],this.reloadItems();var o=this.element[0].style;this.originalStyle={};for(var n=0,m=i.length;n<m;n++){var f=i[n];this.originalStyle[f]=o[f]||null}this.element.css({position:"relative"}),this.horizontalDirection=this.options.isRTL?"right":"left",this.offset={};var b=g(document.createElement("div"));this.element.prepend(b),this.offset.y=Math.round(b.position().top),this.options.isRTL?(b.css({"float":"right",display:"inline-block"}),this.offset.x=Math.round(this.element.outerWidth()-b.position().left)):this.offset.x=Math.round(b.position().left),b.remove();var a=this;setTimeout(function(){a.element.addClass("masonry")},0),this.options.isResizable&&g(h).bind("smartresize.masonry",function(){a.resize()})},_init:function(b){this._getColumns("masonry"),this._reLayout(b)},option:function(b,d){g.isPlainObject(b)&&(this.options=g.extend(!0,this.options,b))},layout:function(B,A){var z,y,x,w,v,u;for(var t=0,s=B.length;t<s;t++){z=g(B[t]),y=Math.ceil(z.outerWidth(!0)/this.columnWidth),y=Math.min(y,this.cols);if(y===1){this._placeBrick(z,this.colYs)}else{x=this.cols+1-y,w=[];for(u=0;u<x;u++){v=this.colYs.slice(u,u+y),w[u]=Math.max.apply(Math,v)}this._placeBrick(z,w)}}var r={};r.height=Math.max.apply(Math,this.colYs)-this.offset.y,this.options.isFitWidth&&(r.width=this.cols*this.columnWidth-this.options.gutterWidth),this.styleQueue.push({$el:this.element,style:r});var q=this.isLaidOut?this.options.isAnimated?"animate":"css":"css",p=this.options.animationOptions,b;for(t=0,s=this.styleQueue.length;t<s;t++){b=this.styleQueue[t],b.$el[q](b.style,p)}this.styleQueue=[],A&&A.call(B),this.isLaidOut=!0},_getColumns:function(){var d=this.options.isFitWidth?this.element.parent():this.element,c=d.width();this.columnWidth=this.options.columnWidth||this.$bricks.outerWidth(!0)||c,this.columnWidth+=this.options.gutterWidth,this.cols=Math.floor((c+this.options.gutterWidth)/this.columnWidth),this.cols=Math.max(this.cols,1)},_placeBrick:function(u,t){var s=Math.min.apply(Math,t),r=0;for(var q=0,p=t.length;q<p;q++){if(t[q]===s){r=q;break}}var o={top:s};o[this.horizontalDirection]=this.columnWidth*r+this.offset.x,this.styleQueue.push({$el:u,style:o});var n=s+u.outerHeight(!0),m=this.cols+1-p;for(q=0;q<m;q++){this.colYs[r+q]=n}},resize:function(){var b=this.cols;this._getColumns("masonry"),this.cols!==b&&this._reLayout()},_reLayout:function(d){var c=this.cols;this.colYs=[];while(c--){this.colYs.push(this.offset.y)}this.layout(this.$bricks,d)},reloadItems:function(){this.$bricks=this._getBricks(this.element.children())},reload:function(b){this.reloadItems(),this._init(b)},appended:function(f,e,n){if(e){this._filterFindBricks(f).css({top:this.element.height()});var m=this;setTimeout(function(){m._appended(f,n)},1)}else{this._appended(f,n)}},_appended:function(e,d){var f=this._getBricks(e);this.$bricks=this.$bricks.add(f),this.layout(f,d)},remove:function(b){this.$bricks=this.$bricks.not(b),b.remove()},destroy:function(){this.$bricks.removeClass("masonry-brick").each(function(){this.style.position=null,this.style.top=null,this.style.left=null});var m=this.element[0].style;for(var f=0,b=i.length;f<b;f++){var a=i[f];m[a]=this.originalStyle[a]}this.element.unbind(".masonry").removeClass("masonry").removeData("masonry"),g(h).unbind(".masonry")}},g.fn.imagesLoaded=function(m){var c=this.find("img"),q=c.length,p="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",o=this,n=function(){--q<=0&&this.src!==p&&(m.call(o),c.unbind("load",n))};if(!q){m.call(this);return this}c.bind("load",n).each(function(){if(this.complete||this.complete===l){var b=this.src;this.src=p,this.src=b}});return this},g.fn.masonry=function(b){if(typeof b=="string"){var d=Array.prototype.slice.call(arguments,1);this.each(function(){var a=g.data(this,"masonry");if(!a){return g.error("cannot call methods on masonry prior to initialization; attempted to call method '"+b+"'")}if(!g.isFunction(a[b])||b.charAt(0)==="_"){return g.error("no such method '"+b+"' for masonry instance")}a[b].apply(a,d)})}else{this.each(function(){var a=g.data(this,"masonry");a?(a.option(b||{}),a._init()):g.data(this,"masonry",new g.Mason(b,this))})}return this}})(window,jQuery);
