/**
 * jQuery VGrid v0.1.3 - variable grid layout plugin
 *
 * Terms of Use - jQuery VGrid
 * under the MIT (http://www.opensource.org/licenses/mit-license.php) License.
 *
 * Copyright 2009 xlune.com All rights reserved.
 * (http://blog.xlune.com/2009/09/jqueryvgrid.html)
 */
(function(f){function h(a){var b=a.data("_vgchild"),c=[[0,a.width(),0]],e=0;b.each(function(){var d=f(this),g=l(d),i=m(c,g[0]);c=n(c,i,g);e=Math.max(e,i[1]+g[1]);d.data("_vgleft",i[0]);d.data("_vgtop",i[1])});a.data("_vgwrapheight",e);o(a)}function m(a,b){a=a.concat([]).sort(k);for(var c=a[a.length-1][2],e=0,d=a.length;e<d;e++){if(a[e][2]>=c)break;if(a[e][1]-a[e][0]>=b)return[a[e][0],a[e][2]]}return[0,c]}function n(a,b,c){a=a.concat().sort(k);b=[b[0],b[0]+c[0],b[1]+c[1]];c=0;for(var e=a.length;c<
e;c++)if(b[0]<=a[c][0]&&a[c][1]<=b[1])delete a[c];else a[c]=p(a[c],b);return q(a,b)}function k(a,b){return a[2]==b[2]&&a[0]>b[0]||a[2]>b[2]?1:-1}function r(a,b){return a[0]>b[0]?1:-1}function q(a,b){a=a.concat([b]).sort(r);b=[];for(var c=0,e=a.length;c<e;c++)if(a[c])if(b.length>0&&b[b.length-1][1]==a[c][0]&&b[b.length-1][2]==a[c][2])b[b.length-1][1]=a[c][1];else b.push(a[c]);return b}function p(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 l(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 o(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 s(a){a.each(function(){var b=f(this);b.css("left",b.data("_vgleft")+"px");b.css("top",b.data("_vgtop")+"px")})}function j(a,b,c,e){a.each(function(d){var g=f(this);clearTimeout(g.data("_vgtimeout"));g.data("_vgtimeout",setTimeout(function(){g.animate({left:g.data("_vgleft")+"px",top:g.data("_vgtop")+"px"},c,b)},d*e))})}function t(a){clearTimeout(a.data("_vgtimeout"));
h(a);a.data("_vgtimeout",setTimeout(function(){j(a.data("_vgchild"),a.data("_vgopt").easeing||"linear",a.data("_vgopt").time||500,a.data("_vgopt").delay||0)},250))}function u(){var a=f("<span />").text(" ").attr("id","_vgridspan").hide().appendTo("body");a.data("size",a.css("font-size"));a.data("timer",setInterval(function(){if(a.css("font-size")!=a.data("size")){a.data("size",a.css("font-size"));f(window).resize()}},500))}f.fn.extend({vgrid:function(a){var b=f(this);b.data("_vgopt",a||{});b.data("_vgchild",
b.find("> *"));b.data("_vgdefchild",b.data("_vgchild"));b.css({position:"relative",width:"auto"});b.data("_vgchild").css("position","absolute");h(b);s(b.data("_vgchild"));if(b.data("_vgopt").fadeIn){var c=typeof b.data("_vgopt").fadeIn=="object"?b.data("_vgopt").fadeIn:{time:b.data("_vgopt").fadeIn};b.data("_vgchild").each(function(e){var d=f(this);d.css("display","none");setTimeout(function(){d.fadeIn(c.time||250)},e*(c.delay||0))})}f(window).resize(function(){t(b)});u();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");h(d);b=typeof b=="number"?b:d.data("_vgopt").time||500;c=typeof c=="number"?c:d.data("_vgopt").delay||0;j(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)});
h(d);j(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);

