!function(t,e,i,s){function n(i,s){this.w=t(e),this.el=t(i),this.options=t.extend({},u,s),this.init()}var a="ontouchstart"in e,o=function(){var t=i.createElement("div"),s=i.documentElement;if(!("pointerEvents"in t.style))return!1;t.style.pointerEvents="auto",t.style.pointerEvents="x",s.appendChild(t);var n=e.getComputedStyle&&"auto"===e.getComputedStyle(t,"").pointerEvents;return s.removeChild(t),!!n}(),r=a?"touchstart":"mousedown",h=a?"touchmove":"mousemove",l=a?"touchend":"mouseup";eCancel=a?"touchcancel":"mouseup";var u={listNodeName:"ol",itemNodeName:"li",rootClass:"dd",listClass:"dd-list",itemClass:"dd-item",dragClass:"dd-dragel",handleClass:"dd-handle",collapsedClass:"dd-collapsed",placeClass:"dd-placeholder",noDragClass:"dd-nodrag",emptyClass:"dd-empty",expandBtnHTML:'<button data-action="expand" type="button">Expand</button>',collapseBtnHTML:'<button data-action="collapse" type="button">Collapse</button>',group:0,maxDepth:5,threshold:20};n.prototype={init:function(){var i=this;i.reset(),i.el.data("nestable-group",this.options.group),i.placeEl=t('<div class="'+i.options.placeClass+'"/>'),t.each(this.el.find(i.options.itemNodeName),function(e,s){i.setParent(t(s))}),i.el.on("click","button",function(e){if(!i.dragEl&&(a||0===e.button)){var s=t(e.currentTarget),n=s.data("action"),o=s.parent(i.options.itemNodeName);"collapse"===n&&i.collapseItem(o),"expand"===n&&i.expandItem(o)}});var s=function(e){var s=t(e.target);if(!s.hasClass(i.options.handleClass)){if(s.closest("."+i.options.noDragClass).length)return;s=s.closest("."+i.options.handleClass)}!s.length||i.dragEl||!a&&0!==e.button||a&&1!==e.touches.length||(e.preventDefault(),i.dragStart(a?e.touches[0]:e))},n=function(t){i.dragEl&&(t.preventDefault(),i.dragMove(a?t.touches[0]:t))},o=function(t){i.dragEl&&(t.preventDefault(),i.dragStop(a?t.touches[0]:t))};a?(i.el[0].addEventListener(r,s,!1),e.addEventListener(h,n,!1),e.addEventListener(l,o,!1),e.addEventListener(eCancel,o,!1)):(i.el.on(r,s),i.w.on(h,n),i.w.on(l,o))},serialize:function(){var e,i=0,s=this;return step=function(e,i){var n=[],a=e.children(s.options.itemNodeName);return a.each(function(){var e=t(this),a=t.extend({},e.data()),o=e.children(s.options.listNodeName);o.length&&(a.children=step(o,i+1)),n.push(a)}),n},e=step(s.el.find(s.options.listNodeName).first(),i)},serialise:function(){return this.serialize()},reset:function(){this.mouse={offsetX:0,offsetY:0,startX:0,startY:0,lastX:0,lastY:0,nowX:0,nowY:0,distX:0,distY:0,dirAx:0,dirX:0,dirY:0,lastDirX:0,lastDirY:0,distAxX:0,distAxY:0},this.moving=!1,this.dragEl=null,this.dragRootEl=null,this.dragDepth=0,this.hasNewRoot=!1,this.pointEl=null},expandItem:function(t){t.removeClass(this.options.collapsedClass),t.children('[data-action="expand"]').hide(),t.children('[data-action="collapse"]').show(),t.children(this.options.listNodeName).show()},collapseItem:function(t){var e=t.children(this.options.listNodeName);e.length&&(t.addClass(this.options.collapsedClass),t.children('[data-action="collapse"]').hide(),t.children('[data-action="expand"]').show(),t.children(this.options.listNodeName).hide())},expandAll:function(){var e=this;e.el.find(e.options.itemNodeName).each(function(){e.expandItem(t(this))})},collapseAll:function(){var e=this;e.el.find(e.options.itemNodeName).each(function(){e.collapseItem(t(this))})},setParent:function(e){e.children(this.options.listNodeName).length&&(e.prepend(t(this.options.expandBtnHTML)),e.prepend(t(this.options.collapseBtnHTML))),e.children('[data-action="expand"]').hide()},unsetParent:function(t){t.removeClass(this.options.collapsedClass),t.children("[data-action]").remove(),t.children(this.options.listNodeName).remove()},dragStart:function(e){var n=this.mouse,a=t(e.target),o=a.closest(this.options.itemNodeName);this.placeEl.css("height",o.height()),n.offsetX=e.offsetX!==s?e.offsetX:e.pageX-a.offset().left,n.offsetY=e.offsetY!==s?e.offsetY:e.pageY-a.offset().top,n.startX=n.lastX=e.pageX,n.startY=n.lastY=e.pageY,this.dragRootEl=this.el,this.dragEl=t(i.createElement(this.options.listNodeName)).addClass(this.options.listClass+" "+this.options.dragClass),this.dragEl.css("width",o.width()),o.after(this.placeEl),o[0].parentNode.removeChild(o[0]),o.appendTo(this.dragEl),t(i.body).append(this.dragEl),this.dragEl.css({left:e.pageX-n.offsetX,top:e.pageY-n.offsetY});var r,h,l=this.dragEl.find(this.options.itemNodeName);for(r=0;r<l.length;r++)h=t(l[r]).parents(this.options.listNodeName).length,h>this.dragDepth&&(this.dragDepth=h)},dragStop:function(){var t=this.dragEl.children(this.options.itemNodeName).first();t[0].parentNode.removeChild(t[0]),this.placeEl.replaceWith(t),this.dragEl.remove(),this.el.trigger("change"),this.hasNewRoot&&this.dragRootEl.trigger("change"),this.reset()},dragMove:function(s){var n,a,r,h,l,u=this.options,c=this.mouse;this.dragEl.css({left:s.pageX-c.offsetX,top:s.pageY-c.offsetY}),c.lastX=c.nowX,c.lastY=c.nowY,c.nowX=s.pageX,c.nowY=s.pageY,c.distX=c.nowX-c.lastX,c.distY=c.nowY-c.lastY,c.lastDirX=c.dirX,c.lastDirY=c.dirY,c.dirX=0===c.distX?0:c.distX>0?1:-1,c.dirY=0===c.distY?0:c.distY>0?1:-1;var d=Math.abs(c.distX)>Math.abs(c.distY)?1:0;if(!c.moving)return c.dirAx=d,c.moving=!0,void 0;c.dirAx!==d?(c.distAxX=0,c.distAxY=0):(c.distAxX+=Math.abs(c.distX),0!==c.dirX&&c.dirX!==c.lastDirX&&(c.distAxX=0),c.distAxY+=Math.abs(c.distY),0!==c.dirY&&c.dirY!==c.lastDirY&&(c.distAxY=0)),c.dirAx=d,c.dirAx&&c.distAxX>=u.threshold&&(c.distAxX=0,r=this.placeEl.prev(u.itemNodeName),c.distX>0&&r.length&&!r.hasClass(u.collapsedClass)&&(n=r.find(u.listNodeName).last(),l=this.placeEl.parents(u.listNodeName).length,l+this.dragDepth<=u.maxDepth&&(n.length?(n=r.children(u.listNodeName).last(),n.append(this.placeEl)):(n=t("<"+u.listNodeName+"/>").addClass(u.listClass),n.append(this.placeEl),r.append(n),this.setParent(r)))),c.distX<0&&(h=this.placeEl.next(u.itemNodeName),h.length||(a=this.placeEl.parent(),this.placeEl.closest(u.itemNodeName).after(this.placeEl),a.children().length||this.unsetParent(a.parent()))));var p=!1;if(o||(this.dragEl[0].style.visibility="hidden"),this.pointEl=t(i.elementFromPoint(s.pageX-i.body.scrollLeft,s.pageY-(e.pageYOffset||i.documentElement.scrollTop))),o||(this.dragEl[0].style.visibility="visible"),this.pointEl.hasClass(u.handleClass)&&(this.pointEl=this.pointEl.parent(u.itemNodeName)),this.pointEl.hasClass(u.emptyClass))p=!0;else if(!this.pointEl.length||!this.pointEl.hasClass(u.itemClass))return;var f=this.pointEl.closest("."+u.rootClass),g=this.dragRootEl.data("nestable-id")!==f.data("nestable-id");if(!c.dirAx||g||p){if(g&&u.group!==f.data("nestable-group"))return;if(l=this.dragDepth-1+this.pointEl.parents(u.listNodeName).length,l>u.maxDepth)return;var m=s.pageY<this.pointEl.offset().top+this.pointEl.height()/2;a=this.placeEl.parent(),p?(n=t(i.createElement(u.listNodeName)).addClass(u.listClass),n.append(this.placeEl),this.pointEl.replaceWith(n)):m?this.pointEl.before(this.placeEl):this.pointEl.after(this.placeEl),a.children().length||this.unsetParent(a.parent()),this.dragRootEl.find(u.itemNodeName).length||this.dragRootEl.append('<div class="'+u.emptyClass+'"/>'),g&&(this.dragRootEl=f,this.hasNewRoot=this.el[0]!==this.dragRootEl[0])}}},t.fn.nestable=function(e){var i=this,s=this;return i.each(function(){var i=t(this).data("nestable");i?"string"==typeof e&&"function"==typeof i[e]&&(s=i[e]()):(t(this).data("nestable",new n(this,e)),t(this).data("nestable-id",(new Date).getTime()))}),s||i}}(window.jQuery||window.Zepto,window,document);