(function(i){i.widget("ui.mlayout",{_init:function(){this._items=null;this.element.data("muiResize",i.delegate(this,"resize")).addClass("mui-component mui-layout").css("position","relative");this.element.find(this.options.selector).css({position:"absolute",overflow:"hidden"});this.options.resizeOnInit&&this.resize({width:this.element.width(),width:this.element.height()})},items:function(){return this._items},sizeof:function(d){var f=null;if(typeof(d=="number")){if(d>=0&&d<this._items.length)f=this._items[d]}else i.each(this._items,
function(l,m){if(m.elmt.is(d)){f=m;return false}});if(f)return{width:f.width,height:f.height};return null},resize:function(d){var f=this.element.css({width:d.width+"px",height:d.height+"px"}).find(this.options.selector);if(this.options.columns){f.css("top",0).height(d.height);var l="width",m="left",e=this.options.columns.concat(),o={height:d.height}}else{f.css("left",0).width(d.width);l="height";m="top";e=this.options.rows.concat();o={width:d.width}}for(;e.length<f.length;)e.push("auto");e=this._items=
i.map(e,function(p,r){return i.extend({elmt:f.eq(r),hint:p,overridden:false,size:p,minSize:-1},o)});for(var g=this.options.space,k=d[l],b=k-(e.length-1)*g,n=[],h=[],j=0,c=0;c<e.length;c++){var a=e[c];if("number"==typeof a.size){j+=a.size;n.push(a)}else{a.size=a.hint+="";var q=/^(\d+)%$/.exec(a.size);if(q){a.size=Math.floor(b*parseInt(q[1])/100);j+=a.size;n.push(a)}else h.push(a)}}b-=j;if(b<0){do{if(g>0){g=(e.length-1)*g;if(g>-b){g=Math.floor((g+b)/(e.length-1));b=k-(e.length-1)*g-j;break}else{g=0;
b=k-j}}for(a=n.concat();b<0;){j=0;b=Math.ceil(-b/a.length);for(c=0;c<a.length;c++)if(a[c].size<b){a[c].size=0;a.splice(c,1)}else{a[c].size-=b;j+=a[c].size}b=k-j}if(b<0)b=0}while(0)}k=0;n=1/h.length;for(c=0;c<h.length;c++){h[c].size=Math.floor(b*n*(c+1))-k;k+=h[c].size}for(c=h=0;c<e.length;c++){a=e[c];b=0;if(this.options.pad&&this.options.pad[c])b=this.options.pad[c];a[l]=a.size-b;a[m]=h;a.elmt.css(l,a.size-b+"px").css(m,h+"px");h+=a.size+g;b=i.extend({},o);b[l]=a.size;a.elmt.muiResize(b)}this.options.onResize(d)}});
i.ui.mlayout.getter="items sizeof";i.ui.mlayout.defaults={minWidth:-1,minHeight:-1,selector:"> *",columns:null,rows:null,space:0,resizeOnInit:false,onResize:function(){}}})(jQuery);
