/**
 * jQuery VGrid v0.1.6 - variable grid layout plugin
 *
 * Terms of Use - jQuery VGrid
 * under the MIT (http://www.opensource.org/licenses/mit-license.php) License.
 *
 * Copyright 2009-2010 xlune.com All rights reserved.
 * (http://blog.xlune.com/2009/09/jqueryvgrid.html)
 */
(function(f){function k(a){var b=a.data("_vgchild"),c=a.width(),e=[[0,c,0]],d=0,g,i,h;b.each(function(){g=f(this);i=s(g);h=t(e,i[0]);e=u(e,h,i);d=Math.max(d,h[1]+i[1]);g.data("_vgleft",h[0]);g.data("_vgtop",h[1])});a.data("_vgwrapheight",d);v(a)}function t(a,b){var c=a.concat().sort(p),e=c[c.length-1][2];a=0;for(var d=c.length;a<d;a++){if(c[a][2]>=e)break;if(c[a][1]-c[a][0]>=b)return[c[a][0],c[a][2]]}return[0,e]}function u(a,b,c){var e=a.concat().sort(p),d=[b[0],b[0]+c[0],b[1]+c[1]];a=0;for(b=e.length;a<
b;a++)if(d[0]<=e[a][0]&&e[a][1]<=d[1])delete e[a];else e[a]=w(e[a],d);return x(e,d)}function p(a,b){if(!a||!b)return 0;return a[2]==b[2]&&a[0]>b[0]||a[2]>b[2]?1:-1}function y(a,b){if(!a||!b)return 0;return a[0]>b[0]?1:-1}function x(a,b){var c=a.concat([b]).sort(y),e=[];a=0;for(b=c.length;a<b;a++)if(c[a])if(e.length>0&&e[e.length-1][1]==c[a][0]&&e[e.length-1][2]==c[a][2])e[e.length-1][1]=c[a][1];else e.push(c[a]);return e}function w(a,b){if(a[0]>=b[0]&&a[0]<b[1]||a[1]>=b[0]&&a[1]<b[1])if(a[0]>=b[0]&&
a[0]<b[1])a[0]=b[1];else a[1]=b[0];return a}function s(a){var b=a.width(),c=a.height();b+=Number(a.css("margin-left").replace("px",""))+Number(a.css("padding-left").replace("px",""))+Number(a.get(0).style.borderLeftWidth.replace("px",""))+Number(a.css("margin-right").replace("px",""))+Number(a.css("padding-right").replace("px",""))+Number(a.get(0).style.borderRightWidth.replace("px",""));c+=Number(a.css("margin-top").replace("px",""))+Number(a.css("padding-top").replace("px",""))+Number(a.get(0).style.borderTopWidth.replace("px",
""))+Number(a.css("margin-bottom").replace("px",""))+Number(a.css("padding-bottom").replace("px",""))+Number(a.get(0).style.borderBottomWidth.replace("px",""));return[b,c]}function v(a){var b=a.data("_vgchild").length*(a.data("_vgopt").delay||0)+a.data("_vgopt").time||500;a.stop();if(a.height()<a.data("_vgwrapheight"))f.browser.msie?a.height(a.data("_vgwrapheight")):a.animate({height:a.data("_vgwrapheight")+"px"},a.data("_vgopt").time||500,"easeOutQuart");else{clearTimeout(a.data("_vgwraptimeout"));
a.data("_vgwraptimeout",setTimeout(function(){f.browser.msie?a.height(a.data("_vgwrapheight")):a.animate({height:a.data("_vgwrapheight")+"px"},a.data("_vgopt").time||500,"easeOutQuart")},b))}}function z(a){var b;a.each(function(){b=f(this);b.css("left",~~b.data("_vgleft")+"px");b.css("top",~~b.data("_vgtop")+"px")})}function m(a,b,c,e){var d=f(a).parent(),g=false,i=a.length,h,l,n;for(h=0;h<i;h++){l=f(a[h]);n=l.position();if(n.left!=l.data("_vgleft")&&n.top!=l.data("_vgtop"))g=true}if(g){typeof d.data("_vgopt").onStart==
"function"&&d.data("_vgopt").onStart();a.each(function(q){var j=f(this),r={duration:c,easing:b};if(a.size()-1==q)r.complete=d.data("_vgopt").onFinish||null;clearTimeout(j.data("_vgtimeout"));j.data("_vgtimeout",setTimeout(function(){j.animate({left:j.data("_vgleft")+"px",top:j.data("_vgtop")+"px"},r)},q*e))})}}function o(a){clearTimeout(a.data("_vgtimeout"));k(a);a.data("_vgtimeout",setTimeout(function(){m(a.data("_vgchild"),a.data("_vgopt").easeing||"linear",a.data("_vgopt").time||500,a.data("_vgopt").delay||
0)},500))}function A(a,b){var c=f("<span />").text(" ").attr("id","_vgridspan").hide().appendTo("body");c.data("size",c.css("font-size"));c.data("timer",setInterval(function(){if(c.css("font-size")!=c.data("size")){c.data("size",c.css("font-size"));b(a)}},1E3))}function B(a,b){a.bind("vgrid-added",function(){a.find("img").bind("load",function(){b(a)})});a.trigger("vgrid-added");var c=a.append,e=a.prepend;a.append=function(){c.apply(a,arguments);a.trigger("vgrid-added")};a.prepend=function(){e.apply(a,
arguments);a.trigger("vgrid-added")}}f.fn.extend({vgrid:function(a){var b=f(this),c=a||{};b.data("_vgopt",c);b.data("_vgchild",b.find("> *"));b.data("_vgdefchild",b.data("_vgchild"));b.css({position:"relative",width:"auto"});b.data("_vgchild").css("position","absolute");k(b);z(b.data("_vgchild"));if(b.data("_vgopt").fadeIn){var e=typeof b.data("_vgopt").fadeIn=="object"?b.data("_vgopt").fadeIn:{time:b.data("_vgopt").fadeIn};b.data("_vgchild").each(function(d){var g=f(this);g.css("display","none");
setTimeout(function(){g.fadeIn(e.time||250)},d*(e.delay||0))})}f(window).resize(function(){o(b)});c.useLoadImageEvent&&B(b,o);c.useFontSizeListener&&A(b,o);return b},vgrefresh:function(a,b,c,e){var d=f(this);if(d.data("_vgchild")){d.data("_vgchild",d.find("> *"));d.data("_vgchild").css("position","absolute");k(d);b=typeof b=="number"?b:d.data("_vgopt").time||500;c=typeof c=="number"?c:d.data("_vgopt").delay||0;m(d.data("_vgchild"),a||d.data("_vgopt").easeing||"linear",b,c);typeof e=="function"&&setTimeout(e,
d.data("_vgchild").length*c+b)}return d},vgsort:function(a,b,c,e){var d=f(this);if(d.data("_vgchild")){d.data("_vgchild",d.data("_vgchild").sort(a));d.data("_vgchild").each(function(){f(this).appendTo(d)});k(d);m(d.data("_vgchild"),b||d.data("_vgopt").easeing||"linear",typeof c=="number"?c:d.data("_vgopt").time||500,typeof e=="number"?e:d.data("_vgopt").delay||0)}return d}})})(jQuery);

