(function(a){a.fn.feedpack=function(e){var d,c,b,g,f;d=this;c=d.data("fdpk");b=a.extend(true,{},a.fn.feedpack.defaults,c,a.fn.feedpack.reset,e);g=b.itemClass===undefined?d.children():d.children(b.itemClass);f=g.length;if(f<1){return(d)}return d.each(function(){var o,k,r,s,m;s=d.css("display");m=d.css("visibility");d.css({display:"block",width:"",visibility:"hidden"});o=b.columnWidth===undefined?g.outerWidth(true):b.columnWidth;k=Math.floor(d.width()/o);r=[];for(i=k;i-->0;){r.push(0)}var p,q,t,j,l,u,v,h,n;g.each(function(w){p=a(this);q=Math.min(k,Math.ceil(p.outerWidth(true)/o));t=k-q+1;_tempTop=[];for(i=0;i<t;i++){l=r.slice(i,i+q);_tempTop.push(Math.max.apply(Math,l))}u=b.snapHeight===undefined||!p.hasClass(b.snapClass)?Math.min.apply(Math,_tempTop):Math.floor(Math.min.apply(Math,_tempTop)/b.snapHeight+0.9999)*b.snapHeight;for(i=k;i-->0;){if(_tempTop[i]<=u){h=i}}v=h*o;if(w>=f-1){b.animationOptions.complete=b.callback}if(b.animate&&c){p.animate({left:h*o+"px",top:u+"px"},a.extend(true,{},b.animationOptions))}else{p.css({left:h*o+"px",top:u+"px"})}n=u+p.outerHeight(true);for(i=0;i<q;i++){r[h+i]=n}});_ccss={display:s,visibility:m};if(b.forceWidth){_ccss.width=b.containerWidthStep?b.containerWidthStep*(parseInt(d.width()/b.containerWidthStep)):k*o}d.css(_ccss);_ccss={height:Math.max.apply(Math,r)};if(b.animate&&c){d.animate(_ccss,a.extend(true,{},b.animationOptions))}else{d.css(_ccss)}g.css({position:"absolute"});if(!b.animate||!c){setTimeout(b.callback,1)}if(!c){if(b.imageLoad){d.find("img").load(function(){clearTimeout(d.data("imglt"));d.data("imglt",setTimeout(function(){d.feedpack()},200))})}if(b.containerResize){a(window).resize(function(){clearTimeout(d.data("rszt"));d.data("rszt",setTimeout(function(){d.feedpack()},200))})}}d.data("fdpk",b)})};a.fn.feedpack.defaults={itemClass:undefined,columnWidth:undefined,snapHeight:undefined,snapClass:undefined,animate:false,imageLoad:true,containerResize:true,forceWidth:false,containerWidthStep:undefined};a.fn.feedpack.reset={animationOptions:{complete:function(){}},callback:function(){}}})(jQuery);
