(function(n){function i(t){return t[0]&&n.isPlainObject(t[0])?this.data=t[0]:this.el=t,this.isCoords=!0,this.coords={},this.init(),this}var t=i.prototype;t.init=function(){this.set();this.original_coords=this.get()};t.set=function(n,t){var r=this.el,u,i;return r&&!n&&(this.data=r.offset(),this.data.width=r.width(),this.data.height=r.height()),r&&n&&!t&&(u=r.offset(),this.data.top=u.top,this.data.left=u.left),i=this.data,this.coords.x1=i.left,this.coords.y1=i.top,this.coords.x2=i.left+i.width,this.coords.y2=i.top+i.height,this.coords.cx=i.left+i.width/2,this.coords.cy=i.top+i.height/2,this.coords.width=i.width,this.coords.height=i.height,this.coords.el=r||!1,this};t.update=function(t){if(!t&&!this.el)return this;if(t){var i=n.extend({},this.data,t);return this.data=i,this.set(!0,!0)}return this.set(!0),this};t.get=function(){return this.coords};n.fn.coords=function(){if(this.data("coords"))return this.data("coords");var n=new i(this,arguments[0]);return this.data("coords",n),n}})(jQuery,window,document),function(n,t,i){function u(t,i,r){this.options=n.extend(f,r);this.$element=t;this.last_colliders=[];this.last_colliders_coords=[];this.set_colliders(i);this.init()}var f={colliders_context:i.body},r=u.prototype;r.init=function(){this.find_collisions()};r.overlaps=function(n,t){var i=!1,r=!1;return(t.x1>=n.x1&&t.x1<=n.x2||t.x2>=n.x1&&t.x2<=n.x2||n.x1>=t.x1&&n.x2<=t.x2)&&(i=!0),(t.y1>=n.y1&&t.y1<=n.y2||t.y2>=n.y1&&t.y2<=n.y2||n.y1>=t.y1&&n.y2<=t.y2)&&(r=!0),i&&r};r.detect_overlapping_region=function(n,t){var i="",r="";return n.y1>t.cy&&n.y1<t.y2&&(i="N"),n.y2>t.y1&&n.y2<t.cy&&(i="S"),n.x1>t.cx&&n.x1<t.x2&&(r="W"),n.x2>t.x1&&n.x2<t.cx&&(r="E"),i+r||"C"};r.calculate_overlapped_area_coords=function(t,i){var r=Math.max(t.x1,i.x1),u=Math.max(t.y1,i.y1),f=Math.min(t.x2,i.x2),e=Math.min(t.y2,i.y2);return n({left:r,top:u,width:f-r,height:e-u}).coords().get()};r.calculate_overlapped_area=function(n){return n.width*n.height};r.manage_colliders_start_stop=function(t,i,r){for(var u,o,f=this.last_colliders_coords,e=0,s=f.length;e<s;e++)n.inArray(f[e],t)===-1&&i.call(this,f[e]);for(u=0,o=t.length;u<o;u++)n.inArray(t[u],f)===-1&&r.call(this,t[u])};r.find_collisions=function(t){for(var i=this,e=[],c=[],o=this.colliders||this.$colliders,s=o.length,r=i.$element.coords().update(t||!1).get(),h;s--;){var u=i.$colliders?n(o[s]):o[s],l=u.isCoords?u:u.coords(),f=l.get(),y=i.overlaps(r,f);if(y&&(h=i.detect_overlapping_region(r,f),h==="C")){var a=i.calculate_overlapped_area_coords(r,f),p=i.calculate_overlapped_area(a),v={area:p,area_coords:a,region:h,coords:f,player_coords:r,el:u};i.options.on_overlap&&i.options.on_overlap.call(this,v);e.push(l);c.push(v)}}return(i.options.on_overlap_stop||i.options.on_overlap_start)&&this.manage_colliders_start_stop(e,i.options.on_overlap_start,i.options.on_overlap_stop),this.last_colliders_coords=e,c};r.get_closest_colliders=function(n){var t=this.find_collisions(n);return t.sort(function(n,t){return n.region==="C"&&t.region==="C"?n.coords.y1<t.coords.y1||n.coords.x1<t.coords.x1?-1:1:(n.area<t.area,1)}),t};r.set_colliders=function(t){typeof t=="string"||t instanceof n?this.$colliders=n(t,this.options.colliders_context).not(this.$element):this.colliders=n(t)};n.fn.collision=function(n,t){return new u(this,n,t)}}(jQuery,window,document),function(n){n.delay=function(n,t){var i=Array.prototype.slice.call(arguments,2);return setTimeout(function(){return n.apply(null,i)},t)};n.debounce=function(n,t,i){var r;return function(){var u=this,f=arguments,e=function(){r=null;i||n.apply(u,f)};i&&!r&&n.apply(u,f);clearTimeout(r);r=setTimeout(e,t)}};n.throttle=function(n,t){var i,r,u,f,e,o,s=debounce(function(){e=f=!1},t);return function(){i=this;r=arguments;var h=function(){u=null;e&&n.apply(i,r);s()};return u||(u=setTimeout(h,t)),f?e=!0:o=n.apply(i,r),s(),f=!0,o}}}(window),function(n,t,i){function s(t,r){this.options=n.extend({},h,r);this.$body=n(i.body);this.$container=n(t);this.$dragitems=n(this.options.items,this.$container);this.is_dragging=!1;this.player_min_left=0+this.options.offset_left;this.init()}var h={items:"li",distance:1,limit:!0,offset_left:0,autoscroll:!0,ignore_dragging:["INPUT","TEXTAREA","SELECT","BUTTON"],handle:null,container_width:0,move_element:!0,helper:!1},f=n(t),c={x:"left",y:"top"},u=!1,e={start:u?"touchstart.gridster-draggable":"mousedown.gridster-draggable",move:u?"touchmove.gridster-draggable":"mousemove.gridster-draggable",end:u?"touchend.gridster-draggable":"mouseup.gridster-draggable"},o=function(n){return n.charAt(0).toUpperCase()+n.slice(1)},r=s.prototype;r.init=function(){this.calculate_dimensions();this.$container.css("position","relative");this.disabled=!1;this.events();n(t).bind("resize.gridster-draggable",throttle(n.proxy(this.calculate_dimensions,this),200))};r.events=function(){this.$container.on("selectstart.gridster-draggable",n.proxy(this.on_select_start,this));this.$container.on(e.start,this.options.items,n.proxy(this.drag_handler,this));this.$body.on(e.end,n.proxy(function(n){if((this.is_dragging=!1,!this.disabled)&&(this.$body.off(e.move),this.drag_start))this.on_dragstop(n)},this))};r.get_actual_pos=function(n){return n.position()};r.get_mouse_pos=function(n){if(u){var t=n.originalEvent;n=t.touches.length?t.touches[0]:t.changedTouches[0]}return{left:n.clientX,top:n.clientY}};r.get_offset=function(n){n.preventDefault();var i=this.get_mouse_pos(n),r=Math.round(i.left-this.mouse_init_pos.left),u=Math.round(i.top-this.mouse_init_pos.top),t=Math.round(this.el_init_offset.left+r-this.baseX+this.scroll_offset_x),f=Math.round(this.el_init_offset.top+u-this.baseY+this.scroll_offset_y);return this.options.limit&&(t>this.player_max_left?t=this.player_max_left:t<this.player_min_left&&(t=this.player_min_left)),{position:{left:t,top:f},pointer:{left:i.left,top:i.top,diff_left:r+this.scroll_offset_x,diff_top:u+this.scroll_offset_y}}};r.get_drag_data=function(n){var t=this.get_offset(n);return t.$player=this.$player,t.$helper=this.helper?this.$helper:this.$player,t};r.set_limits=function(n){return n||(n=this.$container.width()),this.player_max_left=n-this.player_width+-this.options.offset_left,this.options.container_width=n,this};r.scroll_in=function(t,r){var e=c[t],v=50,s=30,h=t==="x",y=h?this.window_width:this.window_height,w=h?n(i).width():n(i).height(),b=h?this.$player.width():this.$player.height(),u,l=f["scroll"+o(e)](),a=l,k=a+y,d=k-v,g=a+v,p=a+r.pointer[e],nt=w-y+b;return p>=d&&(u=l+s,u<nt&&(f["scroll"+o(e)](u),this["scroll_offset_"+t]+=s)),p<=g&&(u=l-s,u>0&&(f["scroll"+o(e)](u),this["scroll_offset_"+t]-=s)),this};r.manage_scroll=function(n){this.scroll_in("x",n);this.scroll_in("y",n)};r.calculate_dimensions=function(){this.window_height=f.height();this.window_width=f.width()};r.drag_handler=function(t){var f=t.target.nodeName,i,r;if(!this.disabled&&(t.which===1||u)&&!this.ignore_drag(t)){i=this;r=!0;this.$player=n(t.currentTarget);this.el_init_pos=this.get_actual_pos(this.$player);this.mouse_init_pos=this.get_mouse_pos(t);this.offsetY=this.mouse_init_pos.top-this.el_init_pos.top;this.$body.on(e.move,function(n){var t=i.get_mouse_pos(n),u=Math.abs(t.left-i.mouse_init_pos.left),f=Math.abs(t.top-i.mouse_init_pos.top);return u>i.options.distance||f>i.options.distance?r?(r=!1,i.on_dragstart.call(i,n),!1):(i.is_dragging===!0&&i.on_dragmove.call(i,n),!1):!1});if(!u)return!1}};r.on_dragstart=function(n){if(n.preventDefault(),this.is_dragging)return this;this.drag_start=this.is_dragging=!0;var t=this.$container.offset();return this.baseX=Math.round(t.left),this.baseY=Math.round(t.top),this.initial_container_width=this.options.container_width||this.$container.width(),this.options.helper==="clone"?(this.$helper=this.$player.clone().appendTo(this.$container).addClass("helper"),this.helper=!0):this.helper=!1,this.scroll_offset_y=0,this.scroll_offset_x=0,this.el_init_offset=this.$player.offset(),this.player_width=this.$player.width(),this.player_height=this.$player.height(),this.set_limits(this.options.container_width),this.options.start&&this.options.start.call(this.$player,n,this.get_drag_data(n)),!1};r.on_dragmove=function(n){var t=this.get_drag_data(n),i;return this.options.autoscroll&&this.manage_scroll(t),this.options.move_element&&(this.helper?this.$helper:this.$player).css({position:"absolute",left:t.position.left,top:t.position.top}),i=this.last_position||t.position,t.prev_position=i,this.options.drag&&this.options.drag.call(this.$player,n,t),this.last_position=t.position,!1};r.on_dragstop=function(n){var t=this.get_drag_data(n);return this.drag_start=!1,this.options.stop&&this.options.stop.call(this.$player,n,t),this.helper&&this.$helper.remove(),!1};r.on_select_start=function(n){if(!this.disabled)return this.ignore_drag(n)?void 0:!1};r.enable=function(){this.disabled=!1};r.disable=function(){this.disabled=!0};r.destroy=function(){this.disable();this.$container.off(".gridster-draggable");this.$body.off(".gridster-draggable");n(t).off(".gridster-draggable");n.removeData(this.$container,"drag")};r.ignore_drag=function(t){return this.options.handle?!n(t.target).is(this.options.handle):n(t.target).is(this.options.ignore_dragging.join(", "))};n.fn.drag=function(n){return new s(this,n)}}(jQuery,window,document),function(n,t,i){function u(t,i){this.options=n.extend(!0,{},f,i);this.$el=n(t);this.$wrapper=this.$el.parent();this.$widgets=this.$el.children(this.options.widget_selector).addClass("gs-w");this.widgets=[];this.$changed=n([]);this.wrapper_width=this.$wrapper.width();this.min_widget_width=this.options.widget_margins[0]*2+this.options.widget_base_dimensions[0];this.min_widget_height=this.options.widget_margins[1]*2+this.options.widget_base_dimensions[1];this.generated_stylesheets=[];this.$style_tags=n([]);this.init()}var f={namespace:"",widget_selector:"li",widget_margins:[10,10],widget_base_dimensions:[400,225],extra_rows:0,extra_cols:0,min_cols:1,max_cols:Infinity,min_rows:15,max_size_x:!1,autogrow_cols:!1,autogenerate_stylesheet:!0,avoid_overlapped_widgets:!0,serialize_params:function(n,t){return{col:t.col,row:t.row,size_x:t.size_x,size_y:t.size_y}},collision:{},draggable:{items:".gs-w",distance:4},resize:{enabled:!1,axes:["both"],handle_append_to:"",handle_class:"gs-resize-handle",max_size:[Infinity,Infinity],min_size:[1,1]}},r;u.generated_stylesheets=[];r=u.prototype;r.init=function(){this.options.resize.enabled&&this.setup_resize();this.generate_grid_and_stylesheet();this.get_widgets_from_DOM();this.set_dom_grid_height();this.set_dom_grid_width();this.$wrapper.addClass("ready");this.draggable();this.options.resize.enabled&&this.resizable();n(t).bind("resize.gridster",throttle(n.proxy(this.recalculate_faux_grid,this),200))};r.disable=function(){return this.$wrapper.find(".player-revert").removeClass("player-revert"),this.drag_api.disable(),this};r.enable=function(){return this.drag_api.enable(),this};r.disable_resize=function(){return this.$el.addClass("gs-resize-disabled"),this.resize_api.disable(),this};r.enable_resize=function(){return this.$el.removeClass("gs-resize-disabled"),this.resize_api.enable(),this};r.add_widget=function(t,i,r,u,f,e,o){var h,s;return i||(i=1),r||(r=1),!u&!f?h=this.next_position(i,r):(h={col:u,row:f},this.empty_cells(u,f,i,r)),s=n(t).attr({"data-col":h.col,"data-row":h.row,"data-sizex":i,"data-sizey":r}).addClass("gs-w").appendTo(this.$el).hide(),this.$widgets=this.$widgets.add(s),this.register_widget(s),this.add_faux_rows(h.size_y),e&&this.set_widget_max_size(s,e),o&&this.set_widget_min_size(s,o),this.set_dom_grid_width(),this.set_dom_grid_height(),this.drag_api.set_limits(this.cols*this.min_widget_width),s.fadeIn()};r.set_widget_min_size=function(n,t){if(n=typeof n=="number"?this.$widgets.eq(n):n,!n.length)return this;var i=n.data("coords").grid;return i.min_size_x=t[0],i.min_size_y=t[1],this};r.set_widget_max_size=function(n,t){if(n=typeof n=="number"?this.$widgets.eq(n):n,!n.length)return this;var i=n.data("coords").grid;return i.max_size_x=t[0],i.max_size_y=t[1],this};r.add_resize_handle=function(t){var i=this.options.resize.handle_append_to;return n(this.resize_handle_tpl).appendTo(i?n(i,t):t),this};r.resize_widget=function(n,t,i,r){var u=n.coords().grid,o=u.col,s=this.options.max_cols,h=u.size_y,c=u.col,l=c,e,f;return t||(t=u.size_x),i||(i=u.size_y),s!==Infinity&&(t=Math.min(t,s-o+1)),i>h&&this.add_faux_rows(Math.max(i-h,0)),e=o+t-1,e>this.cols&&this.add_faux_cols(e-this.cols),f={col:l,row:u.row,size_x:t,size_y:i},this.mutate_widget_in_gridmap(n,u,f),this.set_dom_grid_height(),this.set_dom_grid_width(),r&&r.call(this,f.size_x,f.size_y),n};r.mutate_widget_in_gridmap=function(t,i,r){var p=i.size_x,c=i.size_y,u=this.get_cells_occupied(i),f=this.get_cells_occupied(r),e=[],o,s,h,l,a,v,y;return n.each(u.cols,function(t,i){n.inArray(i,f.cols)===-1&&e.push(i)}),o=[],n.each(f.cols,function(t,i){n.inArray(i,u.cols)===-1&&o.push(i)}),s=[],n.each(u.rows,function(t,i){n.inArray(i,f.rows)===-1&&s.push(i)}),h=[],n.each(f.rows,function(t,i){n.inArray(i,u.rows)===-1&&h.push(i)}),this.remove_from_gridmap(i),o.length&&(l=[r.col,r.row,r.size_x,Math.min(c,r.size_y),t],this.empty_cells.apply(this,l)),h.length&&(a=[r.col,r.row,r.size_x,r.size_y,t],this.empty_cells.apply(this,a)),i.col=r.col,i.row=r.row,i.size_x=r.size_x,i.size_y=r.size_y,this.add_to_gridmap(r,t),t.removeClass("player-revert"),t.data("coords").update({width:r.size_x*this.options.widget_base_dimensions[0]+(r.size_x-1)*this.options.widget_margins[0]*2,height:r.size_y*this.options.widget_base_dimensions[1]+(r.size_y-1)*this.options.widget_margins[1]*2}),t.attr({"data-col":r.col,"data-row":r.row,"data-sizex":r.size_x,"data-sizey":r.size_y}),e.length&&(v=[e[0],r.row,e.length,Math.min(c,r.size_y),t],this.remove_empty_cells.apply(this,v)),s.length&&(y=[r.col,r.row,r.size_x,r.size_y,t],this.remove_empty_cells.apply(this,y)),this.move_widget_up(t),this};r.empty_cells=function(t,i,r,u,f){var e=this.widgets_below({col:t,row:i-u,size_x:r,size_y:u});return e.not(f).each(n.proxy(function(t,r){var f=n(r).coords().grid,e;f.row<=i+u-1&&(e=i+u-f.row,this.move_widget_down(n(r),e))},this)),this.set_dom_grid_height(),this};r.remove_empty_cells=function(t,i,r,u,f){var e=this.widgets_below({col:t,row:i,size_x:r,size_y:u});return e.not(f).each(n.proxy(function(t,i){this.move_widget_up(n(i),u)},this)),this.set_dom_grid_height(),this};r.next_position=function(n,t){var i,r,f;n||(n=1);t||(t=1);var e=this.gridmap,s=e.length,u=[],o;for(i=1;i<s;i++)for(o=e[i].length,r=1;r<=o;r++)f=this.can_move_to({size_x:n,size_y:t},i,r),f&&u.push({col:i,row:r,size_y:t,size_x:n});return u.length?this.sort_by_row_and_col_asc(u)[0]:!1};r.remove_widget=function(t,i,r){var u=t instanceof n?t:n(t),f=u.coords().grid,e;return n.isFunction(i)&&(r=i,i=!1),this.cells_occupied_by_placeholder={},this.$widgets=this.$widgets.not(u),e=this.widgets_below(u),this.remove_from_gridmap(f),u.fadeOut(n.proxy(function(){u.remove();i||e.each(n.proxy(function(t,i){this.move_widget_up(n(i),f.size_y)},this));this.set_dom_grid_height();r&&r.call(this,t)},this)),this};r.remove_all_widgets=function(t){return this.$widgets.each(n.proxy(function(n,i){this.remove_widget(i,!0,t)},this)),this};r.serialize=function(t){t||(t=this.$widgets);var i=[];return t.each(n.proxy(function(t,r){i.push(this.options.serialize_params(n(r),n(r).coords().grid))},this)),i};r.serialize_changed=function(){return this.serialize(this.$changed)};r.register_widget=function(t){var i={col:parseInt(t.attr("data-col"),10),row:parseInt(t.attr("data-row"),10),size_x:parseInt(t.attr("data-sizex"),10),size_y:parseInt(t.attr("data-sizey"),10),max_size_x:parseInt(t.attr("data-max-sizex"),10)||!1,max_size_y:parseInt(t.attr("data-max-sizey"),10)||!1,min_size_x:parseInt(t.attr("data-min-sizex"),10)||!1,min_size_y:parseInt(t.attr("data-min-sizey"),10)||!1,el:t};return this.options.avoid_overlapped_widgets&&!this.can_move_to({size_x:i.size_x,size_y:i.size_y},i.col,i.row)&&(n.extend(i,this.next_position(i.size_x,i.size_y)),t.attr({"data-col":i.col,"data-row":i.row,"data-sizex":i.size_x,"data-sizey":i.size_y})),t.data("coords",t.coords()),t.data("coords").grid=i,this.add_to_gridmap(i,t),this.options.resize.enabled&&this.add_resize_handle(t),this};r.update_widget_position=function(n,t){return this.for_each_cell_occupied(n,function(n,i){if(!this.gridmap[n])return this;this.gridmap[n][i]=t}),this};r.remove_from_gridmap=function(n){return this.update_widget_position(n,!1)};r.add_to_gridmap=function(t,i){if(this.update_widget_position(t,i||t.el),t.el){var r=this.widgets_below(t.el);r.each(n.proxy(function(t,i){this.move_widget_up(n(i))},this))}};r.draggable=function(){var t=this,i=n.extend(!0,{},this.options.draggable,{offset_left:this.options.widget_margins[0],offset_top:this.options.widget_margins[1],container_width:this.cols*this.min_widget_width,limit:!0,ignore_dragging:["INPUT","TEXTAREA","SELECT","BUTTON","."+this.options.resize.handle_class],start:function(i,r){t.$widgets.filter(".player-revert").removeClass("player-revert");t.$player=n(this);t.$helper=n(r.$helper);t.helper=!t.$helper.is(t.$player);t.on_start_drag.call(t,i,r);t.$el.trigger("gridster:dragstart")},stop:function(n,i){t.on_stop_drag.call(t,n,i);t.$el.trigger("gridster:dragstop")},drag:throttle(function(n,i){t.on_drag.call(t,n,i);t.$el.trigger("gridster:drag")},60)});return this.drag_api=this.$el.drag(i),this};r.resizable=function(){return this.resize_api=this.$el.drag({items:"."+this.options.resize.handle_class,offset_left:this.options.widget_margins[0],container_width:this.container_width,move_element:!1,resize:!0,limit:this.options.autogrow_cols?!1:!0,start:n.proxy(this.on_start_resize,this),stop:n.proxy(function(t,i){delay(n.proxy(function(){this.on_stop_resize(t,i)},this),120)},this),drag:throttle(n.proxy(this.on_resize,this),60)}),this};r.setup_resize=function(){this.resize_handle_class=this.options.resize.handle_class;var t=this.options.resize.axes,i='<span class="'+this.resize_handle_class+" "+this.resize_handle_class+'-{type}" />';return this.resize_handle_tpl=n.map(t,function(n){return i.replace("{type}",n)}).join(""),this};r.on_start_drag=function(t,i){var r,u,e,f;this.$helper.add(this.$player).add(this.$wrapper).addClass("dragging");this.highest_col=this.get_highest_occupied_cell().col;this.$player.addClass("player");this.player_grid_data=this.$player.coords().grid;this.placeholder_grid_data=n.extend({},this.player_grid_data);this.set_dom_grid_height(this.$el.height()+this.player_grid_data.size_y*this.min_widget_height);this.set_dom_grid_width(this.cols);r=this.player_grid_data.size_x;u=this.cols-this.highest_col;this.options.autogrow_cols&&u<=r&&this.add_faux_cols(Math.min(r-u,1));e=this.faux_grid;f=this.$player.data("coords").coords;this.cells_occupied_by_player=this.get_cells_occupied(this.player_grid_data);this.cells_occupied_by_placeholder=this.get_cells_occupied(this.placeholder_grid_data);this.last_cols=[];this.last_rows=[];this.collision_api=this.$helper.collision(e,this.options.collision);this.$preview_holder=n("<"+this.$player.get(0).tagName+" />",{"class":"preview-holder","data-row":this.$player.attr("data-row"),"data-col":this.$player.attr("data-col"),css:{width:f.width,height:f.height}}).appendTo(this.$el);this.options.draggable.start&&this.options.draggable.start.call(this,t,i)};r.on_drag=function(n,t){var i,r;if(this.$player===null)return!1;i={left:t.position.left+this.baseX,top:t.position.top+this.baseY};this.options.autogrow_cols&&(r=this.placeholder_grid_data.col+this.placeholder_grid_data.size_x-1,r>=this.cols-1&&this.options.max_cols>=this.cols+1&&(this.add_faux_cols(1),this.set_dom_grid_width(this.cols+1),this.drag_api.set_limits(this.container_width)),this.collision_api.set_colliders(this.faux_grid));this.colliders_data=this.collision_api.get_closest_colliders(i);this.on_overlapped_column_change(this.on_start_overlapping_column,this.on_stop_overlapping_column);this.on_overlapped_row_change(this.on_start_overlapping_row,this.on_stop_overlapping_row);this.helper&&this.$player&&this.$player.css({left:t.position.left,top:t.position.top});this.options.draggable.drag&&this.options.draggable.drag.call(this,n,t)};r.on_stop_drag=function(n,t){this.$helper.add(this.$player).add(this.$wrapper).removeClass("dragging");t.position.left=t.position.left+this.baseX;t.position.top=t.position.top+this.baseY;this.colliders_data=this.collision_api.get_closest_colliders(t.position);this.on_overlapped_column_change(this.on_start_overlapping_column,this.on_stop_overlapping_column);this.on_overlapped_row_change(this.on_start_overlapping_row,this.on_stop_overlapping_row);this.$player.addClass("player-revert").removeClass("player").attr({"data-col":this.placeholder_grid_data.col,"data-row":this.placeholder_grid_data.row}).css({left:"",top:""});this.$changed=this.$changed.add(this.$player);this.cells_occupied_by_player=this.get_cells_occupied(this.placeholder_grid_data);this.set_cells_player_occupies(this.placeholder_grid_data.col,this.placeholder_grid_data.row);this.$player.coords().grid.row=this.placeholder_grid_data.row;this.$player.coords().grid.col=this.placeholder_grid_data.col;this.options.draggable.stop&&this.options.draggable.stop.call(this,n,t);this.$preview_holder.remove();this.$player=null;this.$helper=null;this.placeholder_grid_data={};this.player_grid_data={};this.cells_occupied_by_placeholder={};this.cells_occupied_by_player={};this.set_dom_grid_height();this.set_dom_grid_width();this.options.autogrow_cols&&this.drag_api.set_limits(this.cols*this.min_widget_width)};r.on_start_resize=function(t,i){this.$resized_widget=i.$player.closest(".gs-w");this.resize_coords=this.$resized_widget.coords();this.resize_wgd=this.resize_coords.grid;this.resize_initial_width=this.resize_coords.coords.width;this.resize_initial_height=this.resize_coords.coords.height;this.resize_initial_sizex=this.resize_coords.grid.size_x;this.resize_initial_sizey=this.resize_coords.grid.size_y;this.resize_initial_col=this.resize_coords.grid.col;this.resize_last_sizex=this.resize_initial_sizex;this.resize_last_sizey=this.resize_initial_sizey;this.resize_max_size_x=Math.min(this.resize_wgd.max_size_x||this.options.resize.max_size[0],this.options.max_cols-this.resize_initial_col+1);this.resize_max_size_y=this.resize_wgd.max_size_y||this.options.resize.max_size[1];this.resize_min_size_x=this.resize_wgd.min_size_x||this.options.resize.min_size[0]||1;this.resize_min_size_y=this.resize_wgd.min_size_y||this.options.resize.min_size[1]||1;this.resize_initial_last_col=this.get_highest_occupied_cell().col;this.set_dom_grid_width(this.cols);this.resize_dir={right:i.$player.is("."+this.resize_handle_class+"-x"),bottom:i.$player.is("."+this.resize_handle_class+"-y")};this.$resized_widget.css({"min-width":this.options.widget_base_dimensions[0],"min-height":this.options.widget_base_dimensions[1]});var r=this.$resized_widget.get(0).tagName;this.$resize_preview_holder=n("<"+r+" />",{"class":"preview-holder resize-preview-holder","data-row":this.$resized_widget.attr("data-row"),"data-col":this.$resized_widget.attr("data-col"),css:{width:this.resize_initial_width,height:this.resize_initial_height}}).appendTo(this.$el);this.$resized_widget.addClass("resizing");this.options.resize.start&&this.options.resize.start.call(this,t,i,this.$resized_widget);this.$el.trigger("gridster:resizestart")};r.on_stop_resize=function(t,i){this.$resized_widget.removeClass("resizing").css({width:"",height:""});delay(n.proxy(function(){this.$resize_preview_holder.remove().css({"min-width":"","min-height":""});this.options.resize.stop&&this.options.resize.stop.call(this,t,i,this.$resized_widget);this.$el.trigger("gridster:resizestop")},this),300);this.set_dom_grid_width();this.options.autogrow_cols&&this.drag_api.set_limits(this.cols*this.min_widget_width)};r.on_resize=function(n,t){var c=t.pointer.diff_left,l=t.pointer.diff_top,o=this.options.widget_base_dimensions[0],s=this.options.widget_base_dimensions[1],f=this.options.widget_margins[0],h=this.options.widget_margins[1],a=this.resize_max_size_x,v=this.resize_min_size_x,y=this.resize_max_size_y,p=this.resize_min_size_y,w=this.options.autogrow_cols,b,k=Infinity,d=Infinity,nt=Math.ceil(c/(o+f*2)-.2),tt=Math.ceil(l/(s+h*2)-.2),i=Math.max(1,this.resize_initial_sizex+nt),r=Math.max(1,this.resize_initial_sizey+tt),g=this.container_width/this.min_widget_width-this.resize_initial_col+1,it=g*this.min_widget_width-f*2,u,e;i=Math.max(Math.min(i,a),v);i=Math.min(g,i);b=a*o+(i-1)*f*2;k=Math.min(b,it);min_width=v*o+(i-1)*f*2;r=Math.max(Math.min(r,y),p);d=y*s+(r-1)*h*2;min_height=p*s+(r-1)*h*2;this.resize_dir.right?r=this.resize_initial_sizey:this.resize_dir.bottom&&(i=this.resize_initial_sizex);w&&(u=this.resize_initial_col+i-1,w&&this.resize_initial_last_col<=u&&(this.set_dom_grid_width(Math.max(u+1,this.cols)),this.cols<u&&this.add_faux_cols(u-this.cols)));e={};this.resize_dir.bottom||(e.width=Math.max(Math.min(this.resize_initial_width+c,k),min_width));this.resize_dir.right||(e.height=Math.max(Math.min(this.resize_initial_height+l,d),min_height));this.$resized_widget.css(e);(i!==this.resize_last_sizex||r!==this.resize_last_sizey)&&(this.resize_widget(this.$resized_widget,i,r),this.set_dom_grid_width(this.cols),this.$resize_preview_holder.css({width:"",height:""}).attr({"data-row":this.$resized_widget.attr("data-row"),"data-sizex":i,"data-sizey":r}));this.options.resize.resize&&this.options.resize.resize.call(this,n,t,this.$resized_widget);this.$el.trigger("gridster:resize");this.resize_last_sizex=i;this.resize_last_sizey=r};r.on_overlapped_column_change=function(t,i){if(!this.colliders_data.length)return this;for(var u=this.get_targeted_columns(this.colliders_data[0].el.data.col),f=this.last_cols.length,e=u.length,r=0;r<e;r++)n.inArray(u[r],this.last_cols)===-1&&(t||n.noop).call(this,u[r]);for(r=0;r<f;r++)n.inArray(this.last_cols[r],u)===-1&&(i||n.noop).call(this,this.last_cols[r]);return this.last_cols=u,this};r.on_overlapped_row_change=function(t,i){if(!this.colliders_data.length)return this;for(var u=this.get_targeted_rows(this.colliders_data[0].el.data.row),f=this.last_rows.length,e=u.length,r=0;r<e;r++)n.inArray(u[r],this.last_rows)===-1&&(t||n.noop).call(this,u[r]);for(r=0;r<f;r++)n.inArray(this.last_rows[r],u)===-1&&(i||n.noop).call(this,this.last_rows[r]);this.last_rows=u};r.set_player=function(n,t,i){var h=this,f,e,o;i||this.empty_cells_player_occupies();var s=i?{col:n}:h.colliders_data[0].el.data,u=s.col,r=t||s.row;return this.player_grid_data={col:u,row:r,size_y:this.player_grid_data.size_y,size_x:this.player_grid_data.size_x},this.cells_occupied_by_player=this.get_cells_occupied(this.player_grid_data),f=this.get_widgets_overlapped(this.player_grid_data),e=this.widgets_constraints(f),this.manage_movements(e.can_go_up,u,r),this.manage_movements(e.can_not_go_up,u,r),f.length||(o=this.can_go_player_up(this.player_grid_data),o!==!1&&(r=o),this.set_placeholder(u,r)),{col:u,row:r}};r.widgets_constraints=function(t){var i=n([]),f,r=[],u=[];return t.each(n.proxy(function(t,f){var o=n(f),e=o.coords().grid;this.can_go_widget_up(e)?(i=i.add(o),r.push(e)):u.push(e)},this)),f=t.not(i),{can_go_up:this.sort_by_row_asc(r),can_not_go_up:this.sort_by_row_desc(u)}};r.sort_by_row_asc=function(t){return t.sort(function(t,i){return(t.row||(t=n(t).coords().grid,i=n(i).coords().grid),t.row>i.row)?1:-1})};r.sort_by_row_and_col_asc=function(n){return n.sort(function(n,t){return n.row>t.row||n.row===t.row&&n.col>t.col?1:-1})};r.sort_by_col_asc=function(n){return n.sort(function(n,t){return n.col>t.col?1:-1})};r.sort_by_row_desc=function(n){return n.sort(function(n,t){return n.row+n.size_y<t.row+t.size_y?1:-1})};r.manage_movements=function(t,i,r){return n.each(t,n.proxy(function(n,t){var u=t,e=u.el,f=this.can_go_widget_up(u),o,s;f?(this.move_widget_to(e,f),this.set_placeholder(i,f+u.size_y)):(o=this.can_go_player_up(this.player_grid_data),o||(s=r+this.player_grid_data.size_y-u.row,this.move_widget_down(e,s),this.set_placeholder(i,r)))},this)),this};r.is_player=function(n,t){if(t&&!this.gridmap[n])return!1;var i=t?this.gridmap[n][t]:n;return i&&(i.is(this.$player)||i.is(this.$helper))};r.is_player_in=function(t,i){var r=this.cells_occupied_by_player||{};return n.inArray(t,r.cols)>=0&&n.inArray(i,r.rows)>=0};r.is_placeholder_in=function(t,i){var r=this.cells_occupied_by_placeholder||{};return this.is_placeholder_in_col(t)&&n.inArray(i,r.rows)>=0};r.is_placeholder_in_col=function(t){var i=this.cells_occupied_by_placeholder||[];return n.inArray(t,i.cols)>=0};r.is_empty=function(n,t){return typeof this.gridmap[n]!="undefined"?typeof this.gridmap[n][t]!="undefined"&&this.gridmap[n][t]===!1?!0:!1:!0};r.is_occupied=function(n,t){return this.gridmap[n]?this.gridmap[n][t]?!0:!1:!1};r.is_widget=function(n,t){var i=this.gridmap[n];return i?(i=i[t],i)?i:!1:!1};r.is_widget_under_player=function(n,t){return this.is_widget(n,t)?this.is_player_in(n,t):!1};r.get_widgets_under_player=function(t){t||(t=this.cells_occupied_by_player||{cols:[],rows:[]});var i=n([]);return n.each(t.cols,n.proxy(function(r,u){n.each(t.rows,n.proxy(function(n,t){this.is_widget(u,t)&&(i=i.add(this.gridmap[u][t]))},this))},this)),i};r.set_placeholder=function(t,i){var r=n.extend({},this.placeholder_grid_data),s=this.widgets_below({col:r.col,row:r.row,size_y:r.size_y,size_x:r.size_x}),f=t+r.size_x-1,e,o,u;f>this.cols&&(t=t-(f-t));e=this.placeholder_grid_data.row<i;o=this.placeholder_grid_data.col!==t;this.placeholder_grid_data.col=t;this.placeholder_grid_data.row=i;this.cells_occupied_by_placeholder=this.get_cells_occupied(this.placeholder_grid_data);this.$preview_holder.attr({"data-row":i,"data-col":t});(e||o)&&s.each(n.proxy(function(i,u){this.move_widget_up(n(u),this.placeholder_grid_data.col-t+r.size_y)},this));u=this.get_widgets_under_player(this.cells_occupied_by_placeholder);u.length&&u.each(n.proxy(function(t,u){var f=n(u);this.move_widget_down(f,i+r.size_y-f.data("coords").grid.row)},this))};r.can_go_player_up=function(n){var u=n.row+n.size_y-1,r=!0,t=[],i=1e4,f=this.get_widgets_under_player();return(this.for_each_column_occupied(n,function(n){var o=this.gridmap[n],e=u+1;for(t[n]=[];--e>0;)if(this.is_empty(n,e)||this.is_player(n,e)||this.is_widget(n,e)&&o[e].is(f))t[n].push(e),i=e<i?e:i;else break;if(t[n].length===0)return r=!1,!0;t[n].sort(function(n,t){return n-t})}),!r)?!1:this.get_valid_rows(n,t,i)};r.can_go_widget_up=function(n){var u=n.row+n.size_y-1,r=!0,t=[],i=1e4;return(this.for_each_column_occupied(n,function(f){var o=this.gridmap[f],e;for(t[f]=[],e=u+1;--e>0;){if(this.is_widget(f,e)&&!this.is_player_in(f,e)&&!o[e].is(n.el))break;this.is_player(f,e)||this.is_placeholder_in(f,e)||this.is_player_in(f,e)||t[f].push(e);e<i&&(i=e)}if(t[f].length===0)return r=!1,!0;t[f].sort(function(n,t){return n-t})}),!r)?!1:this.get_valid_rows(n,t,i)};r.get_valid_rows=function(t,i,r){for(var h=t.row,c=t.row+t.size_y-1,e=t.size_y,o=r-1,u=[],s,f;++o<=c;)if(s=!0,n.each(i,function(t,i){n.isArray(i)&&n.inArray(o,i)===-1&&(s=!1)}),s===!0&&(u.push(o),u.length===e))break;return f=!1,e===1?u[0]!==h&&(f=u[0]||!1):u[0]!==h&&(f=this.get_consecutive_numbers_index(u,e)),f};r.get_consecutive_numbers_index=function(n,t){for(var e=n.length,i=[],u=!0,f=-1,r=0;r<e;r++){if(u||n[r]===f+1){if(i.push(r),i.length===t)break;u=!1}else i=[],u=!0;f=n[r]}return i.length>=t?n[i[0]]:!1};r.get_widgets_overlapped=function(){var t=n([]),i=[],r=this.cells_occupied_by_player.rows.slice(0);return r.reverse(),n.each(this.cells_occupied_by_player.cols,n.proxy(function(u,f){n.each(r,n.proxy(function(r,u){if(!this.gridmap[f])return!0;var e=this.gridmap[f][u];this.is_occupied(f,u)&&!this.is_player(e)&&n.inArray(e,i)===-1&&(t=t.add(e),i.push(e))},this))},this)),t};r.on_start_overlapping_column=function(n){this.set_player(n,!1)};r.on_start_overlapping_row=function(n){this.set_player(!1,n)};r.on_stop_overlapping_column=function(n){this.set_player(n,!1);var t=this;this.for_each_widget_below(n,this.cells_occupied_by_player.rows[0],function(){t.move_widget_up(this,t.player_grid_data.size_y)})};r.on_stop_overlapping_row=function(n){var i,r,t,u;for(this.set_player(!1,n),i=this,r=this.cells_occupied_by_player.cols,t=0,u=r.length;t<u;t++)this.for_each_widget_below(r[t],n,function(){i.move_widget_up(this,i.player_grid_data.size_y)})};r.move_widget_to=function(t,i){var u=this,r=t.coords().grid,o=i-r.row,f=this.widgets_below(t),e=this.can_move_to(r,r.col,i,t);return e===!1?!1:(this.remove_from_gridmap(r),r.row=i,this.add_to_gridmap(r),t.attr("data-row",i),this.$changed=this.$changed.add(t),f.each(function(t,i){var f=n(i),e=f.coords().grid,r=u.can_go_widget_up(e);r&&r!==e.row&&u.move_widget_to(f,r)}),this)};r.move_widget_up=function(t,i){var r=t.coords().grid,f=r.row,u=[];if(i||(i=1),!this.can_go_up(t))return!1;this.for_each_column_occupied(r,function(r){var e,o,s;if(n.inArray(t,u)===-1){if(e=t.coords().grid,o=f-i,o=this.can_go_up_to_row(e,r,o),!o)return!0;s=this.widgets_below(t);this.remove_from_gridmap(e);e.row=o;this.add_to_gridmap(e);t.attr("data-row",e.row);this.$changed=this.$changed.add(t);u.push(t);s.each(n.proxy(function(t,r){this.move_widget_up(n(r),i)},this))}})};r.move_widget_down=function(t,i){var f,e,u,o;if(i<=0||(f=t.coords().grid,e=f.row,u=[],o=i,!t))return!1;if(n.inArray(t,u)===-1){var r=t.coords().grid,s=e+i,h=this.widgets_below(t);this.remove_from_gridmap(r);h.each(n.proxy(function(t,i){var u=n(i),e=u.coords().grid,f=this.displacement_diff(e,r,o);f>0&&this.move_widget_down(u,f)},this));r.row=s;this.update_widget_position(r,t);t.attr("data-row",r.row);this.$changed=this.$changed.add(t);u.push(t)}};r.can_go_up_to_row=function(t,i,r){var l=this.gridmap,o=!0,f=[],h=t.row,u,s,e,c;if(this.for_each_column_occupied(t,function(n){var t=l[n];for(f[n]=[],u=h;u--;)if(this.is_empty(n,u)&&!this.is_placeholder_in(n,u))f[n].push(u);else break;if(!f[n].length)return o=!1,!0}),!o)return!1;for(u=r,u=1;u<h;u++){for(s=!0,e=0,c=f.length;e<c;e++)f[e]&&n.inArray(u,f[e])===-1&&(s=!1);if(s===!0){o=u;break}}return o};r.displacement_diff=function(n,t,i){var f=n.row,r=[],e=t.row+t.size_y,u;return this.for_each_column_occupied(n,function(n){for(var t=0,i=e;i<f;i++)this.is_empty(n,i)&&(t=t+1);r.push(t)}),u=Math.max.apply(Math,r),i=i-u,i>0?i:0};r.widgets_below=function(t){var r=n.isPlainObject(t)?t:t.coords().grid,u=this,e=this.gridmap,f=r.row+r.size_y-1,i=n([]);return this.for_each_column_occupied(r,function(t){u.for_each_widget_below(t,f,function(){if(!u.is_player(this)&&n.inArray(this,i)===-1)return i=i.add(this),!0})}),this.sort_by_row_asc(i)};r.set_cells_player_occupies=function(n,t){return this.remove_from_gridmap(this.placeholder_grid_data),this.placeholder_grid_data.col=n,this.placeholder_grid_data.row=t,this.add_to_gridmap(this.placeholder_grid_data,this.$player),this};r.empty_cells_player_occupies=function(){return this.remove_from_gridmap(this.placeholder_grid_data),this};r.can_go_up=function(n){var i=n.coords().grid,r=i.row,t=r-1,f=this.gridmap,u=!0;return r===1?!1:(this.for_each_column_occupied(i,function(n){var i=this.is_widget(n,t);if(this.is_occupied(n,t)||this.is_player(n,t)||this.is_placeholder_in(n,t)||this.is_player_in(n,t))return u=!1,!0}),u)};r.can_move_to=function(n,t,i,r){var s=this.gridmap,f=n.el,e={size_y:n.size_y,size_x:n.size_x,col:t,row:i},u=!0,o=t+n.size_x-1;return o>this.cols?!1:r&&r<i+n.size_y-1?!1:(this.for_each_cell_occupied(e,function(t,i){var r=this.is_widget(t,i);r&&(!n.el||r.is(f))&&(u=!1)}),u)};r.get_targeted_columns=function(n){for(var r=(n||this.player_grid_data.col)+(this.player_grid_data.size_x-1),i=[],t=n;t<=r;t++)i.push(t);return i};r.get_targeted_rows=function(n){for(var r=(n||this.player_grid_data.row)+(this.player_grid_data.size_y-1),i=[],t=n;t<=r;t++)i.push(t);return i};r.get_cells_occupied=function(t){var r={cols:[],rows:[]},i,u,f;for(arguments[1]instanceof n&&(t=arguments[1].coords().grid),i=0;i<t.size_x;i++)u=t.col+i,r.cols.push(u);for(i=0;i<t.size_y;i++)f=t.row+i,r.rows.push(f);return r};r.for_each_cell_occupied=function(n,t){return this.for_each_column_occupied(n,function(i){this.for_each_row_occupied(n,function(n){t.call(this,i,n)})}),this};r.for_each_column_occupied=function(n,t){for(var r,i=0;i<n.size_x;i++)r=n.col+i,t.call(this,r,n)};r.for_each_row_occupied=function(n,t){for(var r,i=0;i<n.size_y;i++)r=n.row+i,t.call(this,r,n)};r._traversing_widgets=function(t,i,r,u,f){var o=this.gridmap,s,a,c,l;if(o[r]){c=t+"/"+i;arguments[2]instanceof n&&(l=arguments[2].coords().grid,r=l.col,u=l.row,f=arguments[3]);var h=[],e=u,v={"for_each/above":function(){while(e--)if(e>0&&this.is_widget(r,e)&&n.inArray(o[r][e],h)===-1&&(s=f.call(o[r][e],r,e),h.push(o[r][e]),s))break},"for_each/below":function(){for(e=u+1,a=o[r].length;e<a;e++)if(this.is_widget(r,e)&&n.inArray(o[r][e],h)===-1&&(s=f.call(o[r][e],r,e),h.push(o[r][e]),s))break}};v[c]&&v[c].call(this)}};r.for_each_widget_above=function(n,t,i){return this._traversing_widgets("for_each","above",n,t,i),this};r.for_each_widget_below=function(n,t,i){return this._traversing_widgets("for_each","below",n,t,i),this};r.get_highest_occupied_cell=function(){for(var n,i=this.gridmap,f=i[1].length,r=[],u=[],t=i.length-1;t>=1;t--)for(n=f-1;n>=1;n--)if(this.is_widget(t,n)){r.push(n);u.push(t);break}return{col:Math.max.apply(Math,u),row:Math.max.apply(Math,r)}};r.get_widgets_from=function(t,i){var u=this.gridmap,r=n();return t&&(r=r.add(this.$widgets.filter(function(){var i=n(this).attr("data-col");return i===t||i>t}))),i&&(r=r.add(this.$widgets.filter(function(){var t=n(this).attr("data-row");return t===i||t>i}))),r};r.set_dom_grid_height=function(n){if(typeof n=="undefined"){var t=this.get_highest_occupied_cell().row;n=t*this.min_widget_height}return this.container_height=n,this.$el.css("height",this.container_height),this};r.set_dom_grid_width=function(n){typeof n=="undefined"&&(n=this.get_highest_occupied_cell().col);var t=this.options.autogrow_cols?this.options.max_cols:this.cols;return n=Math.min(t,Math.max(n,this.options.min_cols)),this.container_width=n*this.min_widget_width,this.$el.css("width",this.container_width),this};r.generate_stylesheet=function(t){var e="",s=this.options.max_size_x||this.cols,i,o,r,f;if(t||(t={}),t.cols||(t.cols=this.cols),t.rows||(t.rows=this.rows),t.namespace||(t.namespace=this.options.namespace),t.widget_base_dimensions||(t.widget_base_dimensions=this.options.widget_base_dimensions),t.widget_margins||(t.widget_margins=this.options.widget_margins),t.min_widget_width=t.widget_margins[0]*2+t.widget_base_dimensions[0],t.min_widget_height=t.widget_margins[1]*2+t.widget_base_dimensions[1],o=n.param(t),n.inArray(o,u.generated_stylesheets)>=0)return!1;for(this.generated_stylesheets.push(o),u.generated_stylesheets.push(o),i=t.cols;i>=0;i--)e+=t.namespace+' [data-col="'+(i+1)+'"] { left:'+(i*t.widget_base_dimensions[0]+i*t.widget_margins[0]+(i+1)*t.widget_margins[0])+"px; }\n";for(i=t.rows;i>=0;i--)e+=t.namespace+' [data-row="'+(i+1)+'"] { top:'+(i*t.widget_base_dimensions[1]+i*t.widget_margins[1]+(i+1)*t.widget_margins[1])+"px; }\n";for(r=1;r<=t.rows;r++)e+=t.namespace+' [data-sizey="'+r+'"] { height:'+(r*t.widget_base_dimensions[1]+(r-1)*t.widget_margins[1]*2)+"px; }\n";for(f=1;f<=s;f++)e+=t.namespace+' [data-sizex="'+f+'"] { width:'+(f*t.widget_base_dimensions[0]+(f-1)*t.widget_margins[0]*2)+"px; }\n";return this.add_style_tag(e)};r.add_style_tag=function(n){var r=i,t=r.createElement("style");return r.getElementsByTagName("head")[0].appendChild(t),t.setAttribute("type","text/css"),t.styleSheet?t.styleSheet.cssText=n:t.appendChild(i.createTextNode(n)),this.$style_tags=this.$style_tags.add(t),this};r.remove_style_tags=function(){var t=u.generated_stylesheets,i=this.generated_stylesheets;this.$style_tags.remove();u.generated_stylesheets=n.map(t,function(t){if(n.inArray(t,i)===-1)return t})};r.generate_faux_grid=function(n,t){this.faux_grid=[];this.gridmap=[];for(var i,r=t;r>0;r--)for(this.gridmap[r]=[],i=n;i>0;i--)this.add_faux_cell(i,r);return this};r.add_faux_cell=function(t,i){var r=n({left:this.baseX+(i-1)*this.min_widget_width,top:this.baseY+(t-1)*this.min_widget_height,width:this.min_widget_width,height:this.min_widget_height,col:i,row:t,original_col:i,original_row:t}).coords();return n.isArray(this.gridmap[i])||(this.gridmap[i]=[]),this.gridmap[i][t]=!1,this.faux_grid.push(r),this};r.add_faux_rows=function(n){for(var t,r=this.rows,u=r+(n||1),i=u;i>r;i--)for(t=this.cols;t>=1;t--)this.add_faux_cell(i,t);return this.rows=u,this.options.autogenerate_stylesheet&&this.generate_stylesheet(),this};r.add_faux_cols=function(n){for(var u=this.cols,i=u+(n||1),t,i=Math.min(i,this.options.max_cols),r=u+1;r<=i;r++)for(t=this.rows;t>=1;t--)this.add_faux_cell(t,r);return this.cols=i,this.options.autogenerate_stylesheet&&this.generate_stylesheet(),this};r.recalculate_faux_grid=function(){var i=this.$wrapper.width();return this.baseX=(n(t).width()-i)/2,this.baseY=this.$wrapper.offset().top,n.each(this.faux_grid,n.proxy(function(n,t){this.faux_grid[n]=t.update({left:this.baseX+(t.data.col-1)*this.min_widget_width,top:this.baseY+(t.data.row-1)*this.min_widget_height})},this)),this};r.get_widgets_from_DOM=function(){return this.$widgets.each(n.proxy(function(t,i){this.register_widget(n(i))},this)),this};r.generate_grid_and_stylesheet=function(){var e=this.$wrapper.width(),i=this.options.max_cols,o=Math.floor(e/this.min_widget_width)+this.options.extra_cols,r=this.$widgets.map(function(){return n(this).attr("data-col")}).get(),u,f;return r.length||(r=[0]),u=Math.max.apply(Math,r),this.cols=Math.max(u,o,this.options.min_cols),i!==Infinity&&i>=u&&i<this.cols&&(this.cols=i),f=this.options.extra_rows,this.$widgets.each(function(t,i){f+=+n(i).attr("data-sizey")}),this.rows=Math.max(f,this.options.min_rows),this.baseX=(n(t).width()-e)/2,this.baseY=this.$wrapper.offset().top,this.options.autogenerate_stylesheet&&this.generate_stylesheet(),this.generate_faux_grid(this.rows,this.cols)};r.destroy=function(){return n(t).unbind(".gridster"),this.drag_api&&this.drag_api.destroy(),this.remove_style_tags(),this.$el.remove(),this};n.fn.gridster=function(t){return this.each(function(){n(this).data("gridster")||n(this).data("gridster",new u(this,t))})};n.Gridster=r}(jQuery,window,document),function(n){var t=n.Gridster;t.widgets_in_col=function(n){if(!this.gridmap[n])return!1;for(var t=this.gridmap[n].length-1;t>=0;t--)if(this.is_widget(n,t)!==!1)return!0;return!1};t.widgets_in_row=function(n){for(var t=this.gridmap.length;t>=1;t--)if(this.is_widget(t,n)!==!1)return!0;return!1};t.widgets_in_range=function(t,i,r,u){for(var s=n([]),e,o,f,h=r;h>=t;h--)for(e=u;e>=i;e--)o=this.is_widget(h,e),o!==!1&&(f=o.data("coords").grid,f.col>=t&&f.col<=r&&f.row>=i&&f.row<=u&&(s=s.add(o)));return s};t.get_bottom_most_occupied_cell=function(){var n=0,t=0;return this.for_each_cell(function(i,r,u){i&&u>n&&(n=u,t=r)}),{col:t,row:n}};t.get_right_most_occupied_cell=function(){var n=0,t=0;return this.for_each_cell(function(i,r,u){if(i)return n=u,t=r,!1}),{col:t,row:n}};t.for_each_cell=function(n,t){var u,f,i,r,e;t||(t=this.gridmap);u=t.length;f=t[1].length;n:for(i=u-1;i>=1;i--)for(r=f-1;r>=1;r--)if(e=t[i]&&t[i][r],n)if(n.call(this,e,i,r)===!1)break n;else continue};t.next_position_in_range=function(n,t,i){var r,u,e;n||(n=1);t||(t=1);var o=this.gridmap,h=o.length,f=[],s;for(r=1;r<h;r++)for(s=i||o[r].length,u=1;u<=s;u++)e=this.can_move_to({size_x:n,size_y:t},r,u,i),e&&f.push({col:r,row:u,size_y:t,size_x:n});return f.length>=1?this.sort_by_col_asc(f)[0]:!1};t.closest_to_right=function(n,t){var r,i;if(!this.gridmap[n])return!1;for(r=this.gridmap.length-1,i=n;i<=r;i++)if(this.gridmap[i][t])return{col:i,row:t};return!1};t.closest_to_left=function(n,t){var r=this.gridmap.length-1,i;if(!this.gridmap[n])return!1;for(i=n;i>=1;i--)if(this.gridmap[i][t])return{col:i,row:t};return!1}}(jQuery,window,document)