File: /home/accemeff/vendor/craftcms/cms/lib/garnishjs/garnish.js
!function(T){var e,i,t,g=function(){};if(g.extend=function(t,e){var i=g.prototype.extend;g._prototyping=!0;var s=new this;i.call(s,t),s.base=function(){},delete g._prototyping;var n=s.constructor,h=s.constructor=function(){if(!g._prototyping)if(this._constructing||this.constructor==h)this._constructing=!0,n.apply(this,arguments),delete this._constructing;else if(null!=arguments[0])return(arguments[0].extend||i).call(arguments[0],s)};return h.ancestor=this,h.extend=this.extend,h.forEach=this.forEach,h.implement=this.implement,h.prototype=s,h.toString=this.toString,h.valueOf=function(t){return"object"==t?h:n.valueOf()},i.call(h,e),"function"==typeof h.init&&h.init(),h},g.prototype={extend:function(t,e){if(1<arguments.length){var i=this[t];if(i&&"function"==typeof e&&(!i.valueOf||i.valueOf()!=e.valueOf())&&/\bbase\b/.test(e)){var s=e.valueOf();(e=function(){var t=this.base||g.prototype.base;this.base=i;var e=s.apply(this,arguments);return this.base=t,e}).valueOf=function(t){return"object"==t?e:s},e.toString=g.toString}this[t]=e}else if(t){var n=g.prototype.extend;g._prototyping||"function"==typeof this||(n=this.extend||n);for(var h={toSource:null},o=["constructor","toString","valueOf"],r=g._prototyping?0:1;a=o[r++];)t[a]!=h[a]&&n.call(this,a,t[a]);for(var a in t)if(!h[a]){var l=Object.getOwnPropertyDescriptor(t,a);void 0!==l.value?n.call(this,a,l.value):Object.defineProperty(this,a,l)}}return this}},g=g.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(t,e,i){for(var s in t)void 0===this.prototype[s]&&e.call(i,t[s],s,t)},implement:function(){for(var t=0;t<arguments.length;t++)"function"==typeof arguments[t]?arguments[t](this.prototype):this.prototype.extend(arguments[t]);return this},toString:function(){return String(this.valueOf())}}),"undefined"!=typeof Garnish)throw"Garnish is already defined!";function s(){return void 0===t&&(t=elementResizeDetectorMaker({callOnAdd:!1})),t}function n(t){T(t).trigger("resize")}Garnish={$win:T(window),$doc:T(document),$bod:T(document.body)},Garnish.rtl=Garnish.$bod.hasClass("rtl"),Garnish.ltr=!Garnish.rtl,Garnish=T.extend(Garnish,{$scrollContainer:Garnish.$win,DELETE_KEY:8,SHIFT_KEY:16,CTRL_KEY:17,ALT_KEY:18,RETURN_KEY:13,ESC_KEY:27,SPACE_KEY:32,LEFT_KEY:37,UP_KEY:38,RIGHT_KEY:39,DOWN_KEY:40,A_KEY:65,S_KEY:83,CMD_KEY:91,PRIMARY_CLICK:1,SECONDARY_CLICK:3,X_AXIS:"x",Y_AXIS:"y",FX_DURATION:100,TEXT_NODE:3,log:function(t){"undefined"!=typeof console&&"function"==typeof console.log&&console.log(t)},_isMobileBrowser:null,_isMobileOrTabletBrowser:null,isMobileBrowser:function(t){var e=t?"_isMobileOrTabletBrowser":"_isMobileBrowser";if(null===Garnish[e]){var i=navigator.userAgent||navigator.vendor||window.opera;Garnish[e]=new RegExp("(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino"+(t?"|android|ipad|playbook|silk":""),"i").test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4))}return Garnish[e]},isArray:function(t){return t instanceof Array},isJquery:function(t){return t instanceof jQuery},isString:function(t){return"string"==typeof t},hasAttr:function(t,e){var i=T(t).attr(e);return void 0!==i&&!1!==i},isTextNode:function(t){return t.nodeType===Garnish.TEXT_NODE},getOffset:function(t){return this.getOffset._offset=T(t).offset(),Garnish.$scrollContainer[0]!==Garnish.$win[0]&&(this.getOffset._offset.top+=Garnish.$scrollContainer.scrollTop(),this.getOffset._offset.left+=Garnish.$scrollContainer.scrollLeft()),this.getOffset._offset},getDist:function(t,e,i,s){return Math.sqrt(Math.pow(t-i,2)+Math.pow(e-s,2))},hitTest:function(t,e,i){return Garnish.hitTest._$elem=T(i),Garnish.hitTest._offset=Garnish.hitTest._$elem.offset(),Garnish.hitTest._x1=Garnish.hitTest._offset.left,Garnish.hitTest._y1=Garnish.hitTest._offset.top,Garnish.hitTest._x2=Garnish.hitTest._x1+Garnish.hitTest._$elem.outerWidth(),Garnish.hitTest._y2=Garnish.hitTest._y1+Garnish.hitTest._$elem.outerHeight(),t>=Garnish.hitTest._x1&&t<Garnish.hitTest._x2&&e>=Garnish.hitTest._y1&&e<Garnish.hitTest._y2},isCursorOver:function(t,e){return Garnish.hitTest(t.pageX,t.pageY,e)},copyTextStyles:function(t,e){var i=T(t);T(e).css({fontFamily:i.css("fontFamily"),fontSize:i.css("fontSize"),fontWeight:i.css("fontWeight"),letterSpacing:i.css("letterSpacing"),lineHeight:i.css("lineHeight"),textAlign:i.css("textAlign"),textIndent:i.css("textIndent"),whiteSpace:i.css("whiteSpace"),wordSpacing:i.css("wordSpacing"),wordWrap:i.css("wordWrap")})},getBodyScrollTop:function(){return Garnish.getBodyScrollTop._scrollTop=document.body.scrollTop,Garnish.getBodyScrollTop._scrollTop<0?Garnish.getBodyScrollTop._scrollTop=0:(Garnish.getBodyScrollTop._maxScrollTop=Garnish.$bod.outerHeight()-Garnish.$win.height(),Garnish.getBodyScrollTop._scrollTop>Garnish.getBodyScrollTop._maxScrollTop&&(Garnish.getBodyScrollTop._scrollTop=Garnish.getBodyScrollTop._maxScrollTop)),Garnish.getBodyScrollTop._scrollTop},requestAnimationFrame:(i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(t){return window.setTimeout(t,20)},function(t){return i(t)}),cancelAnimationFrame:(e=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout,function(t){return e(t)}),scrollContainerToElement:function(t,e){var i;if(void 0===e)s=(i=T(t)).scrollParent();else{var s=T(t);i=T(e)}"HTML"!==s.prop("nodeName")&&s[0]!==Garnish.$doc[0]||(s=Garnish.$win);var n,h=s.scrollTop(),o=i.offset().top,r=!1;if((n=s[0]===window?o-h:o-s.offset().top)<0)r=h+n-10;else{var a=i.outerHeight(),l=s[0]===window?window.innerHeight:s[0].clientHeight;l<n+a&&(r=h+(n-(l-a))+10)}!1!==r&&(s[0]===window?T("html").velocity("scroll",{offset:r+"px",mobileHA:!1}):s.scrollTop(r))},SHAKE_STEPS:10,SHAKE_STEP_DURATION:25,shake:function(t,e){var i=T(t);e||(e="margin-left");var s=parseInt(i.css(e));isNaN(s)&&(s=0);for(var n=0;n<=Garnish.SHAKE_STEPS;n++)!function(t){setTimeout(function(){Garnish.shake._properties={},Garnish.shake._properties[e]=s+(t%2?-1:1)*(10-t),i.velocity(Garnish.shake._properties,Garnish.SHAKE_STEP_DURATION)},Garnish.SHAKE_STEP_DURATION*t)}(n)},getElement:function(t){return T.makeArray(t)[0]},getInputBasename:function(t){var e=T(t).attr("name");return e?e.replace(/\[.*/,""):null},getInputPostVal:function(t){var e=t.attr("type"),i=t.val();return"checkbox"===e||"radio"===e?t.prop("checked")?i:null:Garnish.isArray(i)&&"[]"!==t.attr("name").substr(-2)?i.length?i[i.length-1]:null:i},findInputs:function(t){return T(t).find("input,text,textarea,select,button")},getPostData:function(t){for(var e,i={},s={},n=Garnish.findInputs(t),h=0;h<n.length;h++){var o=n.eq(h);if(!o.prop("disabled")&&(e=o.attr("name"))){var r=Garnish.getInputPostVal(o);if(null!==r){var a="[]"===e.substr(-2);if(a){var l=e.substring(0,e.length-2);void 0===s[l]&&(s[l]=0)}Garnish.isArray(r)||(r=[r]);for(var g=0;g<r.length;g++)a&&(e=l+"["+s[l]+"]",s[l]++),i[e]=r[g]}}}return i},copyInputValues:function(t,e){for(var i=Garnish.findInputs(t),s=Garnish.findInputs(e),n=0;n<i.length&&void 0!==s[n];n++)s.eq(n).val(i.eq(n).val())},isCtrlKeyPressed:function(t){return window.navigator.platform.match(/Mac/)?t.metaKey:t.ctrlKey&&!t.altKey},_eventHandlers:[],_normalizeEvents:function(t){"string"==typeof t&&(t=t.split(" "));for(var e=0;e<t.length;e++)"string"==typeof t[e]&&(t[e]=t[e].split("."));return t},on:function(t,e,i,s){"function"==typeof i&&(s=i,i={}),e=this._normalizeEvents(e);for(var n=0;n<e.length;n++){var h=e[n];this._eventHandlers.push({target:t,type:h[0],namespace:h[1],data:i,handler:s})}},off:function(t,e,i){e=this._normalizeEvents(e);for(var s=0;s<e.length;s++)for(var n=e[s],h=this._eventHandlers.length-1;0<=h;h--){var o=this._eventHandlers[h];o.target!==t||o.type!==n[0]||n[1]&&o.namespace!==n[1]||o.handler!==i||this._eventHandlers.splice(h,1)}}}),Garnish.Base=g.extend({settings:null,_eventHandlers:null,_namespace:null,_$listeners:null,_disabled:!1,constructor:function(){this._eventHandlers=[],this._namespace=".Garnish"+Math.floor(1e9*Math.random()),this._listeners=[],this.init.apply(this,arguments)},init:T.noop,setSettings:function(t,e){var i=void 0===this.settings?{}:this.settings;this.settings=T.extend({},i,e,t)},on:function(t,e,i){"function"==typeof e&&(i=e,e={}),t=Garnish._normalizeEvents(t);for(var s=0;s<t.length;s++){var n=t[s];this._eventHandlers.push({type:n[0],namespace:n[1],data:e,handler:i})}},off:function(t,e){t=Garnish._normalizeEvents(t);for(var i=0;i<t.length;i++)for(var s=t[i],n=this._eventHandlers.length-1;0<=n;n--){var h=this._eventHandlers[n];h.type!==s[0]||s[1]&&h.namespace!==s[1]||h.handler!==e||this._eventHandlers.splice(n,1)}},trigger:function(t,e){var i,s,n,h={type:t,target:this};for(i=0;i<this._eventHandlers.length;i++)(s=this._eventHandlers[i]).type===t&&(n=T.extend({data:s.data},e,h),s.handler(n));for(i=0;i<Garnish._eventHandlers.length;i++)this instanceof(s=Garnish._eventHandlers[i]).target&&s.type===t&&(n=T.extend({data:s.data},e,h),s.handler(n))},_splitEvents:function(t){if("string"==typeof t){t=t.split(",");for(var e=0;e<t.length;e++)t[e]=T.trim(t[e])}return t},_formatEvents:function(t){t=this._splitEvents(t).slice(0);for(var e=0;e<t.length;e++)t[e]+=this._namespace;return t.join(" ")},addListener:function(t,e,i,s){var n=T(t);n.length&&(e=this._splitEvents(e),void 0===s&&"object"!=typeof i&&(s=i,i={}),s="function"==typeof s?T.proxy(s,this):T.proxy(this,s),n.on(this._formatEvents(e),i,T.proxy(function(){if(!this._disabled)return s.apply(this,arguments)},this)),-1===T.inArray(t,this._listeners)&&this._listeners.push(t))},removeListener:function(t,e){T(t).off(this._formatEvents(e))},removeAllListeners:function(t){T(t).off(this._namespace)},disable:function(){this._disabled=!0},enable:function(){this._disabled=!1},destroy:function(){this.trigger("destroy"),this.removeAllListeners(this._listeners)}}),T.extend(jQuery.event.special,{activate:{setup:function(t,e,i){this._namespace;var s=T(this);s.on({"mousedown.garnish-activate":function(t){t.preventDefault()},"click.garnish-activate":function(t){t.preventDefault(),s.hasClass("disabled")||s.trigger("activate")},"keydown.garnish-activate":function(t){this===s[0]&&t.keyCode===Garnish.SPACE_KEY&&(t.preventDefault(),s.hasClass("disabled")||(s.addClass("active"),Garnish.$doc.on("keyup.garnish-activate",function(t){s.removeClass("active"),t.keyCode===Garnish.SPACE_KEY&&(t.preventDefault(),s.trigger("activate")),Garnish.$doc.off("keyup.garnish-activate")})))}}),s.hasClass("disabled")?s.removeAttr("tabindex"):s.attr("tabindex","0")},teardown:function(){T(this).off(".garnish-activate")}},textchange:{setup:function(t,e,i){var s=T(this);s.data("garnish-textchange-value",s.val()),s.on("keypress.garnish-textchange keyup.garnish-textchange change.garnish-textchange blur.garnish-textchange",function(t){var e=s.val();e!==s.data("garnish-textchange-value")&&(s.data("garnish-textchange-value",e),s.trigger("textchange"))})},teardown:function(){T(this).off(".garnish-textchange")},handle:function(t,e){var i=this,s=arguments,n=e&&void 0!==e.delay?e.delay:t.data&&void 0!==t.data.delay?t.data.delay:null,h=t.handleObj,o=T.data(t.target);if(!n)return h.handler.apply(i,s);o.delayTimeout&&clearTimeout(o.delayTimeout),o.delayTimeout=setTimeout(function(){h.handler.apply(i,s)},n)}},resize:{setup:function(t,e,i){if(this===window)return!1;T("> :last-child",this).addClass("last"),s().listenTo(this,n)},teardown:function(){if(this===window)return!1;s().removeListener(this,n)}}}),jQuery.each(["activate","textchange","resize"],function(t,i){jQuery.fn[i]=function(t,e){return 0<arguments.length?this.on(i,null,t,e):this.trigger(i)}}),Garnish.BaseDrag=Garnish.Base.extend({$items:null,dragging:!1,mousedownX:null,mousedownY:null,realMouseX:null,realMouseY:null,mouseX:null,mouseY:null,mouseDistX:null,mouseDistY:null,mouseOffsetX:null,mouseOffsetY:null,$targetItem:null,scrollProperty:null,scrollAxis:null,scrollDist:null,scrollProxy:null,scrollFrame:null,_:null,init:function(t,e){void 0===e&&T.isPlainObject(t)&&(e=t,t=null),this.settings=T.extend({},Garnish.BaseDrag.defaults,e),this.$items=T(),this._={},t&&this.addItems(t)},allowDragging:function(){return!0},startDragging:function(){this.dragging=!0,this.onDragStart()},drag:function(t){t&&(this.drag._scrollProperty=null,this.settings.axis!==Garnish.X_AXIS&&(this.drag._winScrollTop=Garnish.$win.scrollTop(),this.drag._minMouseScrollY=this.drag._winScrollTop+Garnish.BaseDrag.windowScrollTargetSize,this.mouseY<this.drag._minMouseScrollY?(this.drag._scrollProperty="scrollTop",this.drag._scrollAxis="Y",this.drag._scrollDist=Math.round((this.mouseY-this.drag._minMouseScrollY)/2)):(this.drag._maxMouseScrollY=this.drag._winScrollTop+Garnish.$win.height()-Garnish.BaseDrag.windowScrollTargetSize,this.mouseY>this.drag._maxMouseScrollY&&(this.drag._scrollProperty="scrollTop",this.drag._scrollAxis="Y",this.drag._scrollDist=Math.round((this.mouseY-this.drag._maxMouseScrollY)/2)))),this.drag._scrollProperty||this.settings.axis===Garnish.Y_AXIS||(this.drag._winScrollLeft=Garnish.$win.scrollLeft(),this.drag._minMouseScrollX=this.drag._winScrollLeft+Garnish.BaseDrag.windowScrollTargetSize,this.mouseX<this.drag._minMouseScrollX?(this.drag._scrollProperty="scrollLeft",this.drag._scrollAxis="X",this.drag._scrollDist=Math.round((this.mouseX-this.drag._minMouseScrollX)/2)):(this.drag._maxMouseScrollX=this.drag._winScrollLeft+Garnish.$win.width()-Garnish.BaseDrag.windowScrollTargetSize,this.mouseX>this.drag._maxMouseScrollX&&(this.drag._scrollProperty="scrollLeft",this.drag._scrollAxis="X",this.drag._scrollDist=Math.round((this.mouseX-this.drag._maxMouseScrollX)/2)))),this.drag._scrollProperty?(this.scrollProperty||(this.scrollProxy||(this.scrollProxy=T.proxy(this,"_scrollWindow")),this.scrollFrame&&(Garnish.cancelAnimationFrame(this.scrollFrame),this.scrollFrame=null),this.scrollFrame=Garnish.requestAnimationFrame(this.scrollProxy)),this.scrollProperty=this.drag._scrollProperty,this.scrollAxis=this.drag._scrollAxis,this.scrollDist=this.drag._scrollDist):this._cancelWindowScroll()),this.onDrag()},stopDragging:function(){this.dragging=!1,this.onDragStop(),this._cancelWindowScroll()},addItems:function(t){t=T.makeArray(t);for(var e=0;e<t.length;e++){var i=t[e];T.data(i,"drag")&&(Garnish.log("Element was added to more than one dragger"),T.data(i,"drag").removeItems(i)),T.data(i,"drag",this),this.addListener(i,"mousedown","_handleMouseDown")}this.$items=this.$items.add(t)},removeItems:function(t){t=T.makeArray(t);for(var e=0;e<t.length;e++){var i=t[e],s=T.inArray(i,this.$items);-1!==s&&(this._deinitItem(i),this.$items.splice(s,1))}},removeAllItems:function(){for(var t=0;t<this.$items.length;t++)this._deinitItem(this.$items[t]);this.$items=T()},destroy:function(){this.removeAllItems(),this.base()},onDragStart:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("dragStart"),this.settings.onDragStart()},this))},onDrag:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("drag"),this.settings.onDrag()},this))},onDragStop:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("dragStop"),this.settings.onDragStop()},this))},_handleMouseDown:function(t){if(t.which===Garnish.PRIMARY_CLICK&&!this.$targetItem){var e=T(t.target),i=this._getItemHandle(t.currentTarget);if((e.is(i)||e.closest(i).length)&&(t.currentTarget===t.target||!this.settings.ignoreHandleSelector||!e.is(this.settings.ignoreHandleSelector)&&!e.closest(this.settings.ignoreHandleSelector).length)&&(t.preventDefault(),this.allowDragging())){this.$targetItem=T(t.currentTarget),this.mousedownX=this.mouseX=t.pageX,this.mousedownY=this.mouseY=t.pageY;var s=this.$targetItem.offset();this.mouseOffsetX=t.pageX-s.left,this.mouseOffsetY=t.pageY-s.top,this.addListener(Garnish.$doc,"mousemove","_handleMouseMove"),this.addListener(Garnish.$doc,"mouseup","_handleMouseUp")}}},_getItemHandle:function(t){if(this.settings.handle){if("object"==typeof this.settings.handle)return T(this.settings.handle);if("string"==typeof this.settings.handle)return T(this.settings.handle,t);if("function"==typeof this.settings.handle)return T(this.settings.handle(t))}return T(t)},_handleMouseMove:function(t){t.preventDefault(),this.realMouseX=t.pageX,this.realMouseY=t.pageY,this.settings.axis!==Garnish.Y_AXIS&&(this.mouseX=t.pageX),this.settings.axis!==Garnish.X_AXIS&&(this.mouseY=t.pageY),this.mouseDistX=this.mouseX-this.mousedownX,this.mouseDistY=this.mouseY-this.mousedownY,this.dragging||(this._handleMouseMove._mouseDist=Garnish.getDist(this.mousedownX,this.mousedownY,this.realMouseX,this.realMouseY),this._handleMouseMove._mouseDist>=Garnish.BaseDrag.minMouseDist&&this.startDragging()),this.dragging&&this.drag(!0)},_handleMouseUp:function(t){this.removeAllListeners(Garnish.$doc),this.dragging&&this.stopDragging(),this.$targetItem=null},_scrollWindow:function(){this._.scrollPos=Garnish.$scrollContainer[this.scrollProperty](),Garnish.$scrollContainer[this.scrollProperty](this._.scrollPos+this.scrollDist),this["mouse"+this.scrollAxis]-=this._.scrollPos-Garnish.$scrollContainer[this.scrollProperty](),this["realMouse"+this.scrollAxis]=this["mouse"+this.scrollAxis],this.drag(),this.scrollFrame=Garnish.requestAnimationFrame(this.scrollProxy)},_cancelWindowScroll:function(){this.scrollFrame&&(Garnish.cancelAnimationFrame(this.scrollFrame),this.scrollFrame=null),this.scrollProperty=null,this.scrollAxis=null,this.scrollDist=null},_deinitItem:function(t){this.removeAllListeners(t),T.removeData(t,"drag")}},{minMouseDist:1,windowScrollTargetSize:25,defaults:{handle:null,axis:null,ignoreHandleSelector:"input, textarea, button, select, .btn",onDragStart:T.noop,onDrag:T.noop,onDragStop:T.noop}}),Garnish.CheckboxSelect=Garnish.Base.extend({$container:null,$all:null,$options:null,init:function(t){this.$container=T(t),this.$container.data("checkboxSelect")&&(Garnish.log("Double-instantiating a checkbox select on an element"),this.$container.data("checkbox-select").destroy()),this.$container.data("checkboxSelect",this);var e=this.$container.find("input");this.$all=e.filter(".all:first"),this.$options=e.not(this.$all),this.addListener(this.$all,"change","onAllChange")},onAllChange:function(){var t=this.$all.prop("checked");this.$options.prop({checked:t,disabled:t})},destroy:function(){this.$container.removeData("checkboxSelect"),this.base()}}),Garnish.ContextMenu=Garnish.Base.extend({$target:null,options:null,$menu:null,showingMenu:!1,init:function(t,e,i){this.$target=T(t),this.$target.data("contextmenu")&&(Garnish.log("Double-instantiating a context menu on an element"),this.$target.data("contextmenu").destroy()),this.$target.data("contextmenu",this),this.options=e,this.setSettings(i,Garnish.ContextMenu.defaults),Garnish.ContextMenu.counter++,this.enable()},buildMenu:function(){this.$menu=T('<div class="'+this.settings.menuClass+'" style="display: none" />');var t=T("<ul/>").appendTo(this.$menu);for(var e in this.options)if(this.options.hasOwnProperty(e)){var i=this.options[e];if("-"===i)T("<hr/>").appendTo(this.$menu),t=T("<ul/>").appendTo(this.$menu);else{var s=T("<li></li>").appendTo(t),n=T("<a>"+i.label+"</a>").appendTo(s);"function"==typeof i.onClick&&function(t,e){setTimeout(T.proxy(function(){t.mousedown(T.proxy(function(t){this.hideMenu(),e.call(this.currentTarget,T.extend(t,{currentTarget:this.currentTarget}))},this))},this),1)}.call(this,n,i.onClick)}}},showMenu:function(t){"mousedown"===t.type&&t.which!==Garnish.SECONDARY_CLICK||("contextmenu"===t.type&&t.preventDefault(),this.showing&&t.currentTarget===this.currentTarget||(this.currentTarget=t.currentTarget,this.$menu||this.buildMenu(),this.$menu.appendTo(document.body),this.$menu.show(),this.$menu.css({left:t.pageX+1,top:t.pageY-4}),this.showing=!0,setTimeout(T.proxy(function(){this.addListener(Garnish.$doc,"mousedown","hideMenu")},this),0)))},hideMenu:function(){this.removeListener(Garnish.$doc,"mousedown"),this.$menu.hide(),this.showing=!1},enable:function(){this.addListener(this.$target,"contextmenu,mousedown","showMenu")},disable:function(){this.removeListener(this.$target,"contextmenu,mousedown")},destroy:function(){this.$target.removeData("contextmenu"),this.base()}},{defaults:{menuClass:"menu"},counter:0}),Garnish.Drag=Garnish.BaseDrag.extend({targetItemWidth:null,targetItemHeight:null,targetItemPositionInDraggee:null,$draggee:null,otherItems:null,totalOtherItems:null,helpers:null,helperTargets:null,helperPositions:null,helperLagIncrement:null,updateHelperPosProxy:null,updateHelperPosFrame:null,lastMouseX:null,lastMouseY:null,_returningHelpersToDraggees:!1,init:function(t,e){void 0===e&&T.isPlainObject(t)&&(e=t,t=null),e=T.extend({},Garnish.Drag.defaults,e),this.base(t,e)},allowDragging:function(){return!this._returningHelpersToDraggees},startDragging:function(){this.helpers=[],this.helperTargets=[],this.helperPositions=[],this.lastMouseX=this.lastMouseY=null,this.targetItemWidth=this.$targetItem.outerWidth(),this.targetItemHeight=this.$targetItem.outerHeight(),this.draggeeDisplay=this.$targetItem.css("display"),this.setDraggee(this.findDraggee()),this.otherItems=[];for(var t=0;t<this.$items.length;t++){var e=this.$items[t];-1===T.inArray(e,this.$draggee)&&this.otherItems.push(e)}this.totalOtherItems=this.otherItems.length,this.updateHelperPosProxy||(this.updateHelperPosProxy=T.proxy(this,"_updateHelperPos")),this.helperLagIncrement=1===this.helpers.length?0:this.settings.helperLagIncrementDividend/(this.helpers.length-1),this.updateHelperPosFrame=Garnish.requestAnimationFrame(this.updateHelperPosProxy),this.base()},setDraggee:function(t){if(this.targetItemPositionInDraggee=T.inArray(this.$targetItem[0],t.add(this.$targetItem[0])),this.$draggee=T([this.$targetItem[0]].concat(t.not(this.$targetItem).toArray())),this.settings.singleHelper)this._createHelper(0);else for(var e=0;e<this.$draggee.length;e++)this._createHelper(e);this.settings.removeDraggee?this.$draggee.hide():this.settings.collapseDraggees?(this.$targetItem.css("visibility","hidden"),this.$draggee.not(this.$targetItem).hide()):this.$draggee.css("visibility","hidden")},appendDraggee:function(t){if(t.length){if(!this.settings.collapseDraggees)var e=this.$draggee.length;if(this.$draggee=T(this.$draggee.toArray().concat(t.toArray())),!this.settings.collapseDraggees)for(var i=this.$draggee.length,s=e;s<i;s++)this._createHelper(s);this.settings.removeDraggee||this.settings.collapseDraggees?t.hide():t.css("visibility","hidden")}},drag:function(t){this.draggeeVirtualMidpointX=this.mouseX-this.mouseOffsetX+this.targetItemWidth/2,this.draggeeVirtualMidpointY=this.mouseY-this.mouseOffsetY+this.targetItemHeight/2,this.base(t)},stopDragging:function(){Garnish.cancelAnimationFrame(this.updateHelperPosFrame),this.base()},findDraggee:function(){switch(typeof this.settings.filter){case"function":return this.settings.filter();case"string":return this.$items.filter(this.settings.filter);default:return this.$targetItem}},getHelperTargetX:function(){return this.mouseX-this.mouseOffsetX},getHelperTargetY:function(){return this.mouseY-this.mouseOffsetY},returnHelpersToDraggees:function(){this._returningHelpersToDraggees=!0;for(var t=0;t<this.helpers.length;t++){var e=this.$draggee.eq(t),i=this.helpers[t];e.css({display:this.draggeeDisplay,visibility:"hidden"});var s,n=e.offset();s=0===t?T.proxy(this,"_showDraggee"):null,i.velocity({left:n.left,top:n.top},Garnish.FX_DURATION,s)}},onReturnHelpersToDraggees:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("returnHelpersToDraggees"),this.settings.onReturnHelpersToDraggees()},this))},_createHelper:function(t){var e=this.$draggee.eq(t),i=e.clone().addClass("draghelper");this.settings.copyDraggeeInputValuesToHelper&&Garnish.copyInputValues(e,i),i.find("[name]").attr("name",""),i.css({width:e.width()+1,height:e.height(),margin:0,"pointer-events":"none"}),this.settings.helper&&(i="function"==typeof this.settings.helper?this.settings.helper(i):T(this.settings.helper).append(i)),i.appendTo(Garnish.$bod);var s=this._getHelperTarget(t);i.css({position:"absolute",top:s.top,left:s.left,zIndex:this.settings.helperBaseZindex+this.$draggee.length-t,opacity:this.settings.helperOpacity}),this.helperPositions[t]={top:s.top,left:s.left},this.helpers.push(i)},_updateHelperPos:function(){if(this.mouseX!==this.lastMouseX||this.mouseY!==this.lastMouseY){for(this._updateHelperPos._i=0;this._updateHelperPos._i<this.helpers.length;this._updateHelperPos._i++)this.helperTargets[this._updateHelperPos._i]=this._getHelperTarget(this._updateHelperPos._i);this.lastMouseX=this.mouseX,this.lastMouseY=this.mouseY}for(this._updateHelperPos._j=0;this._updateHelperPos._j<this.helpers.length;this._updateHelperPos._j++)this._updateHelperPos._lag=this.settings.helperLagBase+this.helperLagIncrement*this._updateHelperPos._j,this.helperPositions[this._updateHelperPos._j]={left:this.helperPositions[this._updateHelperPos._j].left+(this.helperTargets[this._updateHelperPos._j].left-this.helperPositions[this._updateHelperPos._j].left)/this._updateHelperPos._lag,top:this.helperPositions[this._updateHelperPos._j].top+(this.helperTargets[this._updateHelperPos._j].top-this.helperPositions[this._updateHelperPos._j].top)/this._updateHelperPos._lag},this.helpers[this._updateHelperPos._j].css(this.helperPositions[this._updateHelperPos._j]);this.updateHelperPosFrame=Garnish.requestAnimationFrame(this.updateHelperPosProxy)},_getHelperTarget:function(t){return{left:this.getHelperTargetX()+this.settings.helperSpacingX*t,top:this.getHelperTargetY()+this.settings.helperSpacingY*t}},_showDraggee:function(){for(var t=0;t<this.helpers.length;t++)this.helpers[t].remove();this.helpers=null,this.$draggee.show().css("visibility","inherit"),this.onReturnHelpersToDraggees(),this._returningHelpersToDraggees=!1}},{defaults:{filter:null,singleHelper:!1,collapseDraggees:!1,removeDraggee:!1,copyDraggeeInputValuesToHelper:!1,helperOpacity:1,helper:null,helperBaseZindex:1e3,helperLagBase:1,helperLagIncrementDividend:1.5,helperSpacingX:5,helperSpacingY:5,onReturnHelpersToDraggees:T.noop}}),Garnish.DragDrop=Garnish.Drag.extend({$dropTargets:null,$activeDropTarget:null,init:function(t){t=T.extend({},Garnish.DragDrop.defaults,t),this.base(t)},updateDropTargets:function(){this.settings.dropTargets&&("function"==typeof this.settings.dropTargets?this.$dropTargets=T(this.settings.dropTargets()):this.$dropTargets=T(this.settings.dropTargets),this.$dropTargets.length||(this.$dropTargets=null))},onDragStart:function(){this.updateDropTargets(),this.$activeDropTarget=null,this.base()},onDrag:function(){if(this.$dropTargets){for(this.onDrag._activeDropTarget=null,this.onDrag._i=0;this.onDrag._i<this.$dropTargets.length;this.onDrag._i++)if(this.onDrag._elem=this.$dropTargets[this.onDrag._i],Garnish.hitTest(this.mouseX,this.mouseY,this.onDrag._elem)){this.onDrag._activeDropTarget=this.onDrag._elem;break}(this.$activeDropTarget&&this.onDrag._activeDropTarget!==this.$activeDropTarget[0]||!this.$activeDropTarget&&null!==this.onDrag._activeDropTarget)&&(this.$activeDropTarget&&this.$activeDropTarget.removeClass(this.settings.activeDropTargetClass),this.onDrag._activeDropTarget?this.$activeDropTarget=T(this.onDrag._activeDropTarget).addClass(this.settings.activeDropTargetClass):this.$activeDropTarget=null,this.settings.onDropTargetChange(this.$activeDropTarget))}this.base()},onDragStop:function(){this.$dropTargets&&this.$activeDropTarget&&this.$activeDropTarget.removeClass(this.settings.activeDropTargetClass),this.base()},fadeOutHelpers:function(){for(var t=0;t<this.helpers.length;t++)!function(t){t.velocity("fadeOut",{duration:Garnish.FX_DURATION,complete:function(){t.remove()}})}(this.helpers[t])}},{defaults:{dropTargets:null,onDropTargetChange:T.noop,activeDropTargetClass:"active"}}),Garnish.DragMove=Garnish.BaseDrag.extend({onDrag:function(t,e){this.$targetItem.css({left:this.mouseX-this.mouseOffsetX,top:this.mouseY-this.mouseOffsetY})}}),Garnish.DragSort=Garnish.Drag.extend({$heightedContainer:null,$insertion:null,insertionVisible:!1,oldDraggeeIndexes:null,newDraggeeIndexes:null,closestItem:null,_midpointVersion:0,_$prevItem:null,init:function(t,e){void 0===e&&T.isPlainObject(t)&&(e=t,t=null),e=T.extend({},Garnish.DragSort.defaults,e),this.base(t,e)},createInsertion:function(){if(this.settings.insertion)return"function"==typeof this.settings.insertion?T(this.settings.insertion(this.$draggee)):T(this.settings.insertion)},getHelperTargetX:function(){return 1!==this.settings.magnetStrength?(this.getHelperTargetX._draggeeOffsetX=this.$draggee.offset().left,this.getHelperTargetX._draggeeOffsetX+(this.mouseX-this.mouseOffsetX-this.getHelperTargetX._draggeeOffsetX)/this.settings.magnetStrength):this.base()},getHelperTargetY:function(){return 1!==this.settings.magnetStrength?(this.getHelperTargetY._draggeeOffsetY=this.$draggee.offset().top,this.getHelperTargetY._draggeeOffsetY+(this.mouseY-this.mouseOffsetY-this.getHelperTargetY._draggeeOffsetY)/this.settings.magnetStrength):this.base()},canInsertBefore:function(t){return!0},canInsertAfter:function(t){return!0},onDragStart:function(){if(this.oldDraggeeIndexes=this._getDraggeeIndexes(),this.settings.moveTargetItemToFront&&1<this.$draggee.length&&this._getItemIndex(this.$draggee[0])>this._getItemIndex(this.$draggee[1])&&this.$draggee.first().insertBefore(this.$draggee[1]),this.$insertion=this.createInsertion(),this._placeInsertionWithDraggee(),this.closestItem=null,this._clearMidpoints(),this.settings.container)for(this.$heightedContainer=T(this.settings.container);!this.$heightedContainer.height();)this.$heightedContainer=this.$heightedContainer.parent();this.base()},onDrag:function(){this.$heightedContainer&&!Garnish.hitTest(this.mouseX,this.mouseY,this.$heightedContainer)?this.closestItem&&(this.closestItem=null,this._removeInsertion()):this.closestItem!==(this.closestItem=this._getClosestItem())&&null!==this.closestItem&&this._updateInsertion(),this.base()},onDragStop:function(){this._removeInsertion(),this.settings.moveTargetItemToFront||0===this.targetItemPositionInDraggee||this.$targetItem.insertAfter(this.$draggee.eq(this.targetItemPositionInDraggee)),this.returnHelpersToDraggees(),this.base(),this.$items=T().add(this.$items),this.newDraggeeIndexes=this._getDraggeeIndexes(),this.newDraggeeIndexes.join(",")!==this.oldDraggeeIndexes.join(",")&&this.onSortChange()},onInsertionPointChange:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("insertionPointChange"),this.settings.onInsertionPointChange()},this))},onSortChange:function(){Garnish.requestAnimationFrame(T.proxy(function(){this.trigger("sortChange"),this.settings.onSortChange()},this))},_getItemIndex:function(t){return T.inArray(t,this.$items)},_getDraggeeIndexes:function(){for(var t=[],e=0;e<this.$draggee.length;e++)t.push(this._getItemIndex(this.$draggee[e]));return t},_getClosestItem:function(){for(this._getClosestItem._closestItem=null,this.settings.removeDraggee?this.insertionVisible&&this._testForClosestItem(this.$insertion[0]):this._testForClosestItem(this.$draggee[0]),this._getClosestItem._closestItem&&(this._getClosestItem._midpoint=this._getItemMidpoint(this._getClosestItem._closestItem)),this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._startXDist=this._getClosestItem._lastXDist=this._getClosestItem._closestItem?Math.abs(this._getClosestItem._midpoint.x-this.draggeeVirtualMidpointX):null),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._startYDist=this._getClosestItem._lastYDist=this._getClosestItem._closestItem?Math.abs(this._getClosestItem._midpoint.y-this.draggeeVirtualMidpointY):null),this._getClosestItem._$otherItem=this.$draggee.first().prev();this._getClosestItem._$otherItem.length&&(this._getClosestItem._midpoint=this._getItemMidpoint(this._getClosestItem._$otherItem[0]),this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._xDist=Math.abs(this._getClosestItem._midpoint.x-this.draggeeVirtualMidpointX)),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._yDist=Math.abs(this._getClosestItem._midpoint.y-this.draggeeVirtualMidpointY)),!(this.settings.axis===Garnish.Y_AXIS||null!==this._getClosestItem._lastXDist&&this._getClosestItem._xDist>this._getClosestItem._lastXDist)||!(this.settings.axis===Garnish.X_AXIS||null!==this._getClosestItem._lastYDist&&this._getClosestItem._yDist>this._getClosestItem._lastYDist));)this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._lastXDist=this._getClosestItem._xDist),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._lastYDist=this._getClosestItem._yDist),this.canInsertBefore(this._getClosestItem._$otherItem)&&this._testForClosestItem(this._getClosestItem._$otherItem[0]),this._getClosestItem._$otherItem=this._getClosestItem._$otherItem.prev();for(this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._lastXDist=this._getClosestItem._startXDist),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._lastYDist=this._getClosestItem._startYDist),this._getClosestItem._$otherItem=this.$draggee.last().next();this._getClosestItem._$otherItem.length&&(this._getClosestItem._midpoint=this._getItemMidpoint(this._getClosestItem._$otherItem[0]),this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._xDist=Math.abs(this._getClosestItem._midpoint.x-this.draggeeVirtualMidpointX)),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._yDist=Math.abs(this._getClosestItem._midpoint.y-this.draggeeVirtualMidpointY)),!(this.settings.axis===Garnish.Y_AXIS||null!==this._getClosestItem._lastXDist&&this._getClosestItem._xDist>this._getClosestItem._lastXDist)||!(this.settings.axis===Garnish.X_AXIS||null!==this._getClosestItem._lastYDist&&this._getClosestItem._yDist>this._getClosestItem._lastYDist));)this.settings.axis!==Garnish.Y_AXIS&&(this._getClosestItem._lastXDist=this._getClosestItem._xDist),this.settings.axis!==Garnish.X_AXIS&&(this._getClosestItem._lastYDist=this._getClosestItem._yDist),this.canInsertAfter(this._getClosestItem._$otherItem)&&this._testForClosestItem(this._getClosestItem._$otherItem[0]),this._getClosestItem._$otherItem=this._getClosestItem._$otherItem.next();return this._getClosestItem._closestItem===this.$draggee[0]||this.insertionVisible&&this._getClosestItem._closestItem===this.$insertion[0]?null:this._getClosestItem._closestItem},_clearMidpoints:function(){this._midpointVersion++,this._$prevItem=null},_getItemMidpoint:function(t){return T.data(t,"midpointVersion")!==this._midpointVersion&&(this._getItemMidpoint._repositionDraggee=!this.settings.axis&&(!this.settings.removeDraggee||this.insertionVisible)&&t!==this.$draggee[0]&&(!this.$insertion||t!==this.$insertion.get(0)),this._getItemMidpoint._repositionDraggee?(this._$prevItem||(this._$prevItem=(this.insertionVisible?this.$insertion:this.$draggee).first().prev()),this._moveDraggeeToItem(t),this.settings.removeDraggee?this._getItemMidpoint._$item=this.$insertion:this._getItemMidpoint._$item=this.$draggee):this._getItemMidpoint._$item=T(t),this._getItemMidpoint._offset=this._getItemMidpoint._$item.offset(),T.data(t,"midpoint",{x:this._getItemMidpoint._offset.left+this._getItemMidpoint._$item.outerWidth()/2,y:this._getItemMidpoint._offset.top+this._getItemMidpoint._$item.outerHeight()/2}),T.data(t,"midpointVersion",this._midpointVersion),delete this._getItemMidpoint._$item,delete this._getItemMidpoint._offset,this._getItemMidpoint._repositionDraggee&&(this._$prevItem.length?this.$draggee.insertAfter(this._$prevItem):this.$draggee.prependTo(this.$draggee.parent()),this._placeInsertionWithDraggee())),T.data(t,"midpoint")},_testForClosestItem:function(t){this._testForClosestItem._midpoint=this._getItemMidpoint(t),this._testForClosestItem._mouseDistX=Math.abs(this._testForClosestItem._midpoint.x-this.draggeeVirtualMidpointX),this._testForClosestItem._mouseDistY=Math.abs(this._testForClosestItem._midpoint.y-this.draggeeVirtualMidpointY),(null===this._getClosestItem._closestItem||this._testForClosestItem._mouseDistY<this._getClosestItem._closestItemMouseDistY||this._testForClosestItem._mouseDistY===this._getClosestItem._closestItemMouseDistY&&this._testForClosestItem._mouseDistX<=this._getClosestItem._closestItemMouseDistX)&&(this._getClosestItem._closestItem=t,this._getClosestItem._closestItemMouseDistX=this._testForClosestItem._mouseDistX,this._getClosestItem._closestItemMouseDistY=this._testForClosestItem._mouseDistY)},_updateInsertion:function(){this.closestItem&&this._moveDraggeeToItem(this.closestItem),this._clearMidpoints(),this.onInsertionPointChange()},_moveDraggeeToItem:function(t){this.$draggee.index()<T(t).index()?this.$draggee.insertAfter(t):this.$draggee.insertBefore(t),this._placeInsertionWithDraggee()},_placeInsertionWithDraggee:function(){this.$insertion&&(this.$insertion.insertBefore(this.$draggee.first()),this.insertionVisible=!0)},_removeInsertion:function(){this.insertionVisible&&(this.$insertion.remove(),this.insertionVisible=!1)}},{defaults:{container:null,insertion:null,moveTargetItemToFront:!1,magnetStrength:1,onInsertionPointChange:T.noop,onSortChange:T.noop}}),Garnish.EscManager=Garnish.Base.extend({handlers:null,init:function(){this.handlers=[],this.addListener(Garnish.$bod,"keyup",function(t){t.keyCode===Garnish.ESC_KEY&&this.escapeLatest(t)})},register:function(t,e){this.handlers.push({obj:t,func:e})},unregister:function(t){for(var e=this.handlers.length-1;0<=e;e--)this.handlers[e].obj===t&&this.handlers.splice(e,1)},escapeLatest:function(t){if(this.handlers.length){var e=this.handlers.pop();("function"==typeof e.func?e.func:e.obj[e.func]).call(e.obj,t),"function"==typeof e.obj.trigger&&e.obj.trigger("escape")}}}),Garnish.escManager=new Garnish.EscManager,Garnish.HUD=Garnish.Base.extend({$trigger:null,$fixedTriggerParent:null,$hud:null,$tip:null,$body:null,$header:null,$footer:null,$mainContainer:null,$main:null,$shade:null,showing:!1,orientation:null,updatingSizeAndPosition:!1,windowWidth:null,windowHeight:null,scrollTop:null,scrollLeft:null,mainWidth:null,mainHeight:null,init:function(t,e,i){this.$trigger=T(t),this.setSettings(i,Garnish.HUD.defaults),this.on("show",this.settings.onShow),this.on("hide",this.settings.onHide),this.on("submit",this.settings.onSubmit),void 0===Garnish.HUD.activeHUDs&&(Garnish.HUD.activeHUDs={}),this.$shade=T("<div/>",{class:this.settings.shadeClass}),this.$hud=T("<div/>",{class:this.settings.hudClass}).data("hud",this),this.$tip=T("<div/>",{class:this.settings.tipClass}).appendTo(this.$hud),this.$body=T("<form/>",{class:this.settings.bodyClass}).appendTo(this.$hud),this.$mainContainer=T("<div/>",{class:this.settings.mainContainerClass}).appendTo(this.$body),this.$main=T("<div/>",{class:this.settings.mainClass}).appendTo(this.$mainContainer),this.updateBody(e);var s=this.$trigger;do{if("fixed"===s.css("position")){this.$fixedTriggerParent=s;break}s=s.offsetParent()}while(s.length&&"HTML"!==s.prop("nodeName"));this.$fixedTriggerParent?this.$hud.css("position","fixed"):this.$hud.css("position","absolute");var n=Garnish.$win.width();this.$hud.css({left:"-"+n+"px"}),this.show(),this.addListener(this.$body,"submit","_handleSubmit"),this.addListener(this.$shade,"tap,click","hide"),this.settings.closeBtn&&this.addListener(this.settings.closeBtn,"activate","hide"),this.addListener(Garnish.$win,"resize","updateSizeAndPosition"),this.addListener(this.$main,"resize","updateSizeAndPosition"),this.$fixedTriggerParent||Garnish.$scrollContainer[0]===Garnish.$win[0]||this.addListener(Garnish.$scrollContainer,"scroll","updateSizeAndPosition")},updateBody:function(t){this.$main.html(""),this.$header&&(this.$hud.removeClass("has-header"),this.$header.remove(),this.$header=null),this.$footer&&(this.$hud.removeClass("has-footer"),this.$footer.remove(),this.$footer=null),this.$main.append(t);var e=this.$main.find("."+this.settings.headerClass+":first"),i=this.$main.find("."+this.settings.footerClass+":first");e.length&&(this.$header=e.insertBefore(this.$mainContainer),this.$hud.addClass("has-header")),i.length&&(this.$footer=i.insertAfter(this.$mainContainer),this.$hud.addClass("has-footer"))},show:function(t){if(t&&t.stopPropagation&&t.stopPropagation(),!this.showing){if(this.settings.closeOtherHUDs)for(var e in Garnish.HUD.activeHUDs)Garnish.HUD.activeHUDs.hasOwnProperty(e)&&Garnish.HUD.activeHUDs[e].hide();this.$shade.appendTo(Garnish.$bod),this.$hud.appendTo(Garnish.$bod),this.$hud.show(),this.$shade.show(),this.showing=!0,Garnish.HUD.activeHUDs[this._namespace]=this,Garnish.escManager.register(this,"hide"),this.onShow(),this.enable(),this.updateRecords()&&(this.$hud.css("top",Garnish.$scrollContainer.scrollTop()),this.updateSizeAndPosition(!0))}},onShow:function(){this.trigger("show")},updateRecords:function(){var t=!1;return t=this.windowWidth!==(this.windowWidth=Garnish.$win.width())||t,t=this.windowHeight!==(this.windowHeight=Garnish.$win.height())||t,t=this.scrollTop!==(this.scrollTop=Garnish.$scrollContainer.scrollTop())||t,t=this.scrollLeft!==(this.scrollLeft=Garnish.$scrollContainer.scrollLeft())||t,t=this.mainWidth!==(this.mainWidth=this.$main.outerWidth())||t,t=this.mainHeight!==(this.mainHeight=this.$main.outerHeight())||t},updateSizeAndPosition:function(t){(!0===t||this.updateRecords()&&!this.updatingSizeAndPosition)&&(this.updatingSizeAndPosition=!0,Garnish.requestAnimationFrame(T.proxy(this,"updateSizeAndPositionInternal")))},updateSizeAndPositionInternal:function(){var t,e,i,s,n,h,o,r,a,l;s=Garnish.$win.scrollLeft(),n=Garnish.$win.scrollTop(),t=this.$trigger.outerWidth(),e=this.$trigger.outerHeight(),i=this.$trigger.offset(),r=this.$fixedTriggerParent?(i.left-=s,i.top-=n,h=i,o=n=s=0):(h=Garnish.getOffset(this.$trigger),o=Garnish.$scrollContainer.scrollLeft(),Garnish.$scrollContainer.scrollTop()),i.right=i.left+t,i.bottom=i.top+e,h.right=h.left+t,h.bottom=h.top+e,this.$hud.css({width:""}),this.$mainContainer.css({height:"","overflow-x":"","overflow-y":""}),a=this.$body.width(),l=this.$body.height();var g,d,u,c,p,m={bottom:this.windowHeight+r-h.bottom,top:h.top-r,right:this.windowWidth+o-h.right,left:h.left-o};this.orientation=null;for(var f=0;f<this.settings.orientations.length;f++){var $=this.settings.orientations[f],_="top"===$||"bottom"===$?l:a;if(m[$]-(this.settings.windowSpacing+this.settings.triggerSpacing)>=_){this.orientation=$;break}(!this.orientation||m[$]>m[this.orientation])&&(this.orientation=$)}if(this.orientation&&-1!==T.inArray(this.orientation,["bottom","top","right","left"])||(this.orientation="bottom"),this.tipClass&&this.$tip.removeClass(this.tipClass),this.tipClass=this.settings.tipClass+"-"+Garnish.HUD.tipClasses[this.orientation],this.$tip.addClass(this.tipClass),d="top"===this.orientation||"bottom"===this.orientation?(g=this.windowWidth-2*this.settings.windowSpacing,m[this.orientation]-this.settings.windowSpacing-this.settings.triggerSpacing):(g=m[this.orientation]-this.settings.windowSpacing-this.settings.triggerSpacing,this.windowHeight-2*this.settings.windowSpacing),g<this.settings.minBodyWidth&&(g=this.settings.minBodyWidth),d<this.settings.minBodyHeight&&(d=this.settings.minBodyHeight),(g<a||a<this.settings.minBodyWidth)&&(a=g<a?g:this.settings.minBodyWidth,this.$hud.width(a),this.mainWidth>g&&this.$mainContainer.css("overflow-x","scroll"),l=this.$body.height()),d<l||l<this.settings.minBodyHeight){var v=l=d<l?d:this.settings.minBodyHeight;this.$header&&(v-=this.$header.outerHeight()),this.$footer&&(v-=this.$footer.outerHeight()),this.$mainContainer.height(v),this.mainHeight>v&&this.$mainContainer.css("overflow-y","scroll")}if("top"===this.orientation||"bottom"===this.orientation){var I=this.windowWidth+s-(a+this.settings.windowSpacing),w=s+this.settings.windowSpacing;I<(c=(u=i.left+Math.round(t/2))-Math.round(a/2))&&(c=I),c<w&&(c=w),this.$hud.css("left",c);var b=u-c-this.settings.tipWidth/2;this.$tip.css({left:b,top:""}),p="top"===this.orientation?i.top-(l+this.settings.triggerSpacing):i.bottom+this.settings.triggerSpacing,this.$hud.css("top",p)}else{var x=this.windowHeight+n-(l+this.settings.windowSpacing),y=n+this.settings.windowSpacing;x<(p=(u=i.top+Math.round(e/2))-Math.round(l/2))&&(p=x),p<y&&(p=y),this.$hud.css("top",p);var D=u-p-this.settings.tipWidth/2;this.$tip.css({top:D,left:""}),c="left"===this.orientation?i.left-(a+this.settings.triggerSpacing):i.right+this.settings.triggerSpacing,this.$hud.css("left",c)}this.updatingSizeAndPosition=!1,this.trigger("updateSizeAndPosition")},hide:function(){this.disable(),this.$hud.hide(),this.$shade.hide(),this.showing=!1,delete Garnish.HUD.activeHUDs[this._namespace],Garnish.escManager.unregister(this),this.onHide()},onHide:function(){this.trigger("hide")},toggle:function(){this.showing?this.hide():this.show()},submit:function(){this.onSubmit()},onSubmit:function(){this.trigger("submit")},_handleSubmit:function(t){t.preventDefault(),this.submit()}},{tipClasses:{bottom:"top",top:"bottom",right:"left",left:"right"},defaults:{shadeClass:"hud-shade",hudClass:"hud",tipClass:"tip",bodyClass:"body",headerClass:"hud-header",footerClass:"hud-footer",mainContainerClass:"main-container",mainClass:"main",orientations:["bottom","top","right","left"],triggerSpacing:10,windowSpacing:10,tipWidth:30,minBodyWidth:200,minBodyHeight:0,onShow:T.noop,onHide:T.noop,onSubmit:T.noop,closeBtn:null,closeOtherHUDs:!0}}),Garnish.Menu=Garnish.Base.extend({settings:null,$container:null,$options:null,$anchor:null,menuId:null,_windowWidth:null,_windowHeight:null,_windowScrollLeft:null,_windowScrollTop:null,_anchorOffset:null,_anchorWidth:null,_anchorHeight:null,_anchorOffsetRight:null,_anchorOffsetBottom:null,_menuWidth:null,_menuHeight:null,init:function(t,e){this.setSettings(e,Garnish.Menu.defaults),this.$container=T(t),this.$options=T(),this.addOptions(this.$container.find("a")),this.menuId="menu"+this._namespace,this.$menuList=T("ul",this.$container),this.$menuList.attr({role:"listbox",id:this.menuId,"aria-hidden":"true"}),this.settings.attachToElement&&(this.settings.anchor=this.settings.attachToElement,Garnish.log("The 'attachToElement' setting is deprecated. Use 'anchor' instead.")),this.settings.anchor&&(this.$anchor=T(this.settings.anchor)),this.addListener(this.$container,"mousedown",function(t){t.stopPropagation(),t.preventDefault()})},addOptions:function(t){this.$options=this.$options.add(t),t.data("menu",this),t.each(T.proxy(function(t,e){T(e).attr({role:"option",tabindex:"-1",id:this.menuId+"-option-"+t})},this)),this.addListener(t,"click","selectOption")},setPositionRelativeToAnchor:function(){this._windowWidth=Garnish.$win.width(),this._windowHeight=Garnish.$win.height(),this._windowScrollLeft=Garnish.$win.scrollLeft(),this._windowScrollTop=Garnish.$win.scrollTop(),this._anchorOffset=this.$anchor.offset(),this._anchorWidth=this.$anchor.outerWidth(),this._anchorHeight=this.$anchor.outerHeight(),this._anchorOffsetRight=this._anchorOffset.left+this._anchorHeight,this._anchorOffsetBottom=this._anchorOffset.top+this._anchorHeight,this.$container.css("minWidth",0),this.$container.css("minWidth",this._anchorWidth-(this.$container.outerWidth()-this.$container.width())),this._menuWidth=this.$container.outerWidth(),this._menuHeight=this.$container.outerHeight();var t=this._anchorOffset.top-this._windowScrollTop,e=this._windowHeight+this._windowScrollTop-this._anchorOffsetBottom;e>=this._menuHeight||t<this._menuHeight&&t<=e?this.$container.css({top:this._anchorOffsetBottom,maxHeight:e-this.settings.windowSpacing}):this.$container.css({top:this._anchorOffset.top-Math.min(this._menuHeight,t-this.settings.windowSpacing),maxHeight:t-this.settings.windowSpacing});var i=this.$container.data("align");if("left"!==i&&"center"!==i&&"right"!==i&&(i="left"),"center"===i)this._alignCenter();else{var s=this._windowWidth+this._windowScrollLeft-(this._anchorOffset.left+this._menuWidth),n=this._anchorOffsetRight-this._menuWidth;"right"===i&&0<=n||s<0?this._alignRight():this._alignLeft()}delete this._windowWidth,delete this._windowHeight,delete this._windowScrollLeft,delete this._windowScrollTop,delete this._anchorOffset,delete this._anchorWidth,delete this._anchorHeight,delete this._anchorOffsetRight,delete this._anchorOffsetBottom,delete this._menuWidth,delete this._menuHeight},show:function(){this.$container.appendTo(Garnish.$bod),this.$anchor&&this.setPositionRelativeToAnchor(),this.$container.velocity("stop"),this.$container.css({opacity:1,display:"block"}),this.$menuList.attr("aria-hidden","false"),Garnish.escManager.register(this,"hide"),this.addListener(Garnish.$scrollContainer,"scroll","setPositionRelativeToAnchor")},hide:function(){this.$menuList.attr("aria-hidden","true"),this.$container.velocity("fadeOut",{duration:Garnish.FX_DURATION},T.proxy(function(){this.$container.detach()},this)),Garnish.escManager.unregister(this),this.removeListener(Garnish.$scrollContainer,"scroll"),this.trigger("hide")},selectOption:function(t){this.settings.onOptionSelect(t.currentTarget),this.trigger("optionselect",{selectedOption:t.currentTarget}),this.hide()},_alignLeft:function(){this.$container.css({left:this._anchorOffset.left,right:"auto"})},_alignRight:function(){this.$container.css({right:this._windowWidth-(this._anchorOffset.left+this._anchorWidth),left:"auto"})},_alignCenter:function(){var t=Math.round(this._anchorOffset.left+this._anchorWidth/2-this._menuWidth/2);t<0&&(t=0),this.$container.css("left",t)}},{defaults:{anchor:null,windowSpacing:5,onOptionSelect:T.noop}}),Garnish.MenuBtn=Garnish.Base.extend({$btn:null,menu:null,showingMenu:!1,disabled:!0,init:function(t,e){if(this.$btn=T(t),this.$btn.data("menubtn")){var i=this.$btn.data("menubtn").menu.$container;Garnish.log("Double-instantiating a menu button on an element"),this.$btn.data("menubtn").destroy()}else i=this.$btn.next(".menu").detach();this.$btn.data("menubtn",this),this.setSettings(e,Garnish.MenuBtn.defaults),this.menu=new Garnish.Menu(i,{anchor:this.settings.menuAnchor||this.$btn,onOptionSelect:T.proxy(this,"onOptionSelect")}),this.$btn.attr({tabindex:0,role:"combobox","aria-owns":this.menu.menuId,"aria-haspopup":"true","aria-expanded":"false"}),this.menu.on("hide",T.proxy(this,"onMenuHide")),this.addListener(this.$btn,"mousedown","onMouseDown"),this.addListener(this.$btn,"keydown","onKeyDown"),this.addListener(this.$btn,"blur","onBlur"),this.enable()},onBlur:function(t){this.showingMenu&&this.hideMenu()},onKeyDown:function(t){var i;switch(t.keyCode){case Garnish.RETURN_KEY:t.preventDefault();var e=this.menu.$options.filter(".hover");0<e.length&&e.get(0).click();break;case Garnish.SPACE_KEY:t.preventDefault(),this.showingMenu||(this.showMenu(),0===(i=this.menu.$options.filter(".sel:first")).length&&(i=this.menu.$options.first()),this.focusOption(i));break;case Garnish.DOWN_KEY:t.preventDefault(),this.showingMenu?(T.each(this.menu.$options,T.proxy(function(t,e){i||T(e).hasClass("hover")&&t+1<this.menu.$options.length&&(i=T(this.menu.$options[t+1]))},this)),i||(i=T(this.menu.$options[0]))):(this.showMenu(),0===(i=this.menu.$options.filter(".sel:first")).length&&(i=this.menu.$options.first())),this.focusOption(i);break;case Garnish.UP_KEY:t.preventDefault(),this.showingMenu?(T.each(this.menu.$options,T.proxy(function(t,e){i||T(e).hasClass("hover")&&0<=t-1&&(i=T(this.menu.$options[t-1]))},this)),i||(i=T(this.menu.$options[this.menu.$options.length-1]))):(this.showMenu(),0===(i=this.menu.$options.filter(".sel:first")).length&&(i=this.menu.$options.last())),this.focusOption(i)}},focusOption:function(t){this.menu.$options.removeClass("hover"),t.addClass("hover"),this.menu.$menuList.attr("aria-activedescendant",t.attr("id")),this.$btn.attr("aria-activedescendant",t.attr("id"))},onMouseDown:function(t){t.which!==Garnish.PRIMARY_CLICK||Garnish.isCtrlKeyPressed(t)||(t.preventDefault(),this.showingMenu?this.hideMenu():this.showMenu())},showMenu:function(){this.disabled||(this.menu.show(),this.$btn.addClass("active"),this.$btn.trigger("focus"),this.$btn.attr("aria-expanded","true"),this.showingMenu=!0,setTimeout(T.proxy(function(){this.addListener(Garnish.$doc,"mousedown","onMouseDown")},this),1))},hideMenu:function(){this.menu.hide(),this.$btn.attr("aria-expanded","false")},onMenuHide:function(){this.$btn.removeClass("active"),this.showingMenu=!1,this.removeListener(Garnish.$doc,"mousedown")},onOptionSelect:function(t){this.settings.onOptionSelect(t),this.trigger("optionSelect",{option:t})},enable:function(){this.disabled=!1},disable:function(){this.disabled=!0},destroy:function(){this.$btn.removeData("menubtn"),this.base()}},{defaults:{menuAnchor:null,onOptionSelect:T.noop}}),Garnish.MixedInput=Garnish.Base.extend({$container:null,elements:null,focussedElement:null,blurTimeout:null,init:function(t,e){this.$container=T(t),this.setSettings(e,Garnish.MixedInput.defaults),this.elements=[],this.$container.attr("tabindex",0),this.addListener(this.$container,"focus","onFocus")},getElementIndex:function(t){return T.inArray(t,this.elements)},isText:function(t){return"INPUT"===t.prop("nodeName")},onFocus:function(){if(this.elements.length){var t=this.elements[0];this.setFocus(t),this.setCarotPos(t,0)}else this.addTextElement()},addTextElement:function(t){var e=new d(this);return this.addElement(e.$input,t),e},addElement:function(t,e){if(void 0===e)if(this.focussedElement){var i=this.focussedElement,s=this.getElementIndex(i);if(this.isText(i)){var n=i.prop("selectionStart"),h=i.prop("selectionEnd"),o=i.val(),r=o.substring(0,n),a=o.substr(h);if(r&&a){i.val(r).trigger("change");var l=new d(this);l.$input.val(a).trigger("change"),this.addElement(l.$input,s+1),e=s+1}else e=r?s+1:s}else e=s+1}else e=this.elements.length;void 0!==this.elements[e]?(t.insertBefore(this.elements[e]),this.elements.splice(e,0,t)):(e=this.elements.length,this.$container.append(t),this.elements.push(t)),this.isText(t)||(0!==e&&this.isText(this.elements[e-1])||(this.addTextElement(e),e++),e!==this.elements.length-1&&this.isText(this.elements[e+1])||this.addTextElement(e+1)),this.addListener(t,"click",function(){this.setFocus(t)}),setTimeout(T.proxy(function(){this.setFocus(t)},this),1)},removeElement:function(t){var e=this.getElementIndex(t);if(-1!==e){if(this.elements.splice(e,1),!this.isText(t)){var i=this.elements[e-1],s=this.elements[e];if(this.isText(i)&&this.isText(s)){var n=i.val(),h=n+s.val();i.val(h).trigger("change"),this.removeElement(s),this.setFocus(i),this.setCarotPos(i,n.length)}}t.remove()}},setFocus:function(t){this.$container.addClass("focus"),this.focussedElement?this.blurFocussedElement():this.$container.attr("tabindex","-1"),t.attr("tabindex","0"),t.focus(),this.focussedElement=t,this.addListener(t,"blur",function(){this.blurTimeout=setTimeout(T.proxy(function(){this.focussedElement===t&&(this.blurFocussedElement(),this.focussedElement=null,this.$container.removeClass("focus"),this.$container.attr("tabindex","0"))},this),1)})},blurFocussedElement:function(){this.removeListener(this.focussedElement,"blur"),this.focussedElement.attr("tabindex","-1")},focusPreviousElement:function(t){var e=this.getElementIndex(t);if(0<e){var i=this.elements[e-1];if(this.setFocus(i),this.isText(i)){var s=i.val().length;this.setCarotPos(i,s)}}},focusNextElement:function(t){var e=this.getElementIndex(t);if(e<this.elements.length-1){var i=this.elements[e+1];this.setFocus(i),this.isText(i)&&this.setCarotPos(i,0)}},setCarotPos:function(t,e){t.prop("selectionStart",e),t.prop("selectionEnd",e)}});var d=Garnish.Base.extend({parentInput:null,$input:null,$stage:null,val:null,focussed:!1,interval:null,init:function(t){this.parentInput=t,this.$input=T('<input type="text"/>').appendTo(this.parentInput.$container),this.$input.css("margin-right",2-d.padding+"px"),this.setWidth(),this.addListener(this.$input,"focus","onFocus"),this.addListener(this.$input,"blur","onBlur"),this.addListener(this.$input,"keydown","onKeyDown"),this.addListener(this.$input,"change","checkInput")},getIndex:function(){return this.parentInput.getElementIndex(this.$input)},buildStage:function(){this.$stage=T("<stage/>").appendTo(Garnish.$bod),this.$stage.css({position:"absolute",top:-9999,left:-9999,wordWrap:"nowrap"}),Garnish.copyTextStyles(this.$input,this.$stage)},getTextWidth:function(t){return this.$stage||this.buildStage(),t&&(t=(t=(t=(t=t.replace(/&/g,"&")).replace(/</g,"<")).replace(/>/g,">")).replace(/ /g," ")),this.$stage.html(t),this.stageWidth=this.$stage.width(),this.stageWidth},onFocus:function(){this.focussed=!0,this.interval=setInterval(T.proxy(this,"checkInput"),Garnish.NiceText.interval),this.checkInput()},onBlur:function(){this.focussed=!1,clearInterval(this.interval),this.checkInput()},onKeyDown:function(t){switch(setTimeout(T.proxy(this,"checkInput"),1),t.keyCode){case Garnish.LEFT_KEY:0===this.$input.prop("selectionStart")&&0===this.$input.prop("selectionEnd")&&this.parentInput.focusPreviousElement(this.$input);break;case Garnish.RIGHT_KEY:this.$input.prop("selectionStart")===this.val.length&&this.$input.prop("selectionEnd")===this.val.length&&this.parentInput.focusNextElement(this.$input);break;case Garnish.DELETE_KEY:0===this.$input.prop("selectionStart")&&0===this.$input.prop("selectionEnd")&&(this.parentInput.focusPreviousElement(this.$input),t.preventDefault())}},getVal:function(){return this.val=this.$input.val(),this.val},setVal:function(t){this.$input.val(t),this.checkInput()},checkInput:function(){var t=this.val!==this.getVal();return t&&(this.setWidth(),this.onChange()),t},setWidth:function(){if(this.stageWidth!==this.getTextWidth(this.val)){var t=this.stageWidth+d.padding;this.$input.width(t)}},onChange:T.noop},{padding:20});Garnish.Modal=Garnish.Base.extend({$container:null,$shade:null,visible:!1,dragger:null,desiredWidth:null,desiredHeight:null,resizeDragger:null,resizeStartWidth:null,resizeStartHeight:null,init:function(t,e){void 0===e&&T.isPlainObject(t)&&(e=t,t=null),this.setSettings(e,Garnish.Modal.defaults),this.$shade=T('<div class="'+this.settings.shadeClass+'"/>'),t?this.$shade.insertBefore(t):this.$shade.appendTo(Garnish.$bod),t&&(this.setContainer(t),this.settings.autoShow&&this.show()),Garnish.Modal.instances.push(this)},setContainer:function(t){if(this.$container=T(t),this.$container.data("modal")&&(Garnish.log("Double-instantiating a modal on an element"),this.$container.data("modal").destroy()),this.$container.data("modal",this),this.settings.draggable&&(this.dragger=new Garnish.DragMove(this.$container,{handle:this.settings.dragHandleSelector?this.$container.find(this.settings.dragHandleSelector):this.$container})),this.settings.resizable){var e=T('<div class="resizehandle"/>').appendTo(this.$container);this.resizeDragger=new Garnish.BaseDrag(e,{onDragStart:T.proxy(this,"_handleResizeStart"),onDrag:T.proxy(this,"_handleResize")})}this.addListener(this.$container,"click",function(t){t.stopPropagation()}),this.visible&&this.show()},show:function(){this.settings.closeOtherModals&&Garnish.Modal.visibleModal&&Garnish.Modal.visibleModal!==this&&Garnish.Modal.visibleModal.hide(),this.$container&&(this.$shade.appendTo(Garnish.$bod),this.$container.appendTo(Garnish.$bod),this.$container.show(),this.updateSizeAndPosition(),this.$shade.velocity("fadeIn",{duration:50,complete:T.proxy(function(){this.$container.velocity("fadeIn",{complete:T.proxy(function(){this.updateSizeAndPosition(),this.onFadeIn()},this)})},this)}),this.settings.hideOnShadeClick&&this.addListener(this.$shade,"click","hide"),this.addListener(Garnish.$win,"resize","_handleWindowResize")),this.enable(),this.settings.hideOnEsc&&Garnish.escManager.register(this,"hide"),this.visible||(this.visible=!0,(Garnish.Modal.visibleModal=this).trigger("show"),this.settings.onShow())},quickShow:function(){this.show(),this.$container&&(this.$container.velocity("stop"),this.$container.show().css("opacity",1),this.$shade.velocity("stop"),this.$shade.show().css("opacity",1))},hide:function(t){this.disable(),t&&t.stopPropagation(),this.$container&&(this.$container.velocity("fadeOut",{duration:Garnish.FX_DURATION}),this.$shade.velocity("fadeOut",{duration:Garnish.FX_DURATION,complete:T.proxy(this,"onFadeOut")}),this.settings.hideOnShadeClick&&this.removeListener(this.$shade,"click"),this.removeListener(Garnish.$win,"resize")),this.visible=!1,Garnish.Modal.visibleModal=null,this.settings.hideOnEsc&&Garnish.escManager.unregister(this),this.trigger("hide"),this.settings.onHide()},quickHide:function(){this.hide(),this.$container&&(this.$container.velocity("stop"),this.$container.css("opacity",0).hide(),this.$shade.velocity("stop"),this.$shade.css("opacity",0).hide())},updateSizeAndPosition:function(){this.$container&&(this.$container.css({width:this.desiredWidth?Math.max(this.desiredWidth,200):"",height:this.desiredHeight?Math.max(this.desiredHeight,200):"","min-width":"","min-height":""}),this.updateSizeAndPosition._windowWidth=Garnish.$win.width(),this.updateSizeAndPosition._width=Math.min(this.getWidth(),this.updateSizeAndPosition._windowWidth-2*this.settings.minGutter),this.$container.css({width:this.updateSizeAndPosition._width,"min-width":this.updateSizeAndPosition._width,left:Math.round((this.updateSizeAndPosition._windowWidth-this.updateSizeAndPosition._width)/2)}),this.updateSizeAndPosition._windowHeight=Garnish.$win.height(),this.updateSizeAndPosition._height=Math.min(this.getHeight(),this.updateSizeAndPosition._windowHeight-2*this.settings.minGutter),this.$container.css({height:this.updateSizeAndPosition._height,"min-height":this.updateSizeAndPosition._height,top:Math.round((this.updateSizeAndPosition._windowHeight-this.updateSizeAndPosition._height)/2)}),this.trigger("updateSizeAndPosition"))},onFadeIn:function(){this.trigger("fadeIn"),this.settings.onFadeIn()},onFadeOut:function(){this.trigger("fadeOut"),this.settings.onFadeOut()},getHeight:function(){if(!this.$container)throw"Attempted to get the height of a modal whose container has not been set.";return this.visible||this.$container.show(),this.getHeight._height=this.$container.outerHeight(),this.visible||this.$container.hide(),this.getHeight._height},getWidth:function(){if(!this.$container)throw"Attempted to get the width of a modal whose container has not been set.";return this.visible||this.$container.show(),this.getWidth._width=this.$container.outerWidth()+1,this.visible||this.$container.hide(),this.getWidth._width},_handleWindowResize:function(t){t.target===window&&this.updateSizeAndPosition()},_handleResizeStart:function(){this.resizeStartWidth=this.getWidth(),this.resizeStartHeight=this.getHeight()},_handleResize:function(){Garnish.ltr?this.desiredWidth=this.resizeStartWidth+2*this.resizeDragger.mouseDistX:this.desiredWidth=this.resizeStartWidth-2*this.resizeDragger.mouseDistX,this.desiredHeight=this.resizeStartHeight+2*this.resizeDragger.mouseDistY,this.updateSizeAndPosition()},destroy:function(){this.$container&&this.$container.removeData("modal").remove(),this.dragger&&this.dragger.destroy(),this.resizeDragger&&this.resizeDragger.destroy(),this.base()}},{relativeElemPadding:8,defaults:{autoShow:!0,draggable:!1,dragHandleSelector:null,resizable:!1,minGutter:10,onShow:T.noop,onHide:T.noop,onFadeIn:T.noop,onFadeOut:T.noop,closeOtherModals:!1,hideOnEsc:!0,hideOnShadeClick:!0,shadeClass:"modal-shade"},instances:[],visibleModal:null}),Garnish.NiceText=Garnish.Base.extend({$input:null,$hint:null,$stage:null,$charsLeft:null,autoHeight:null,maxLength:null,showCharsLeft:!1,showingHint:!1,val:null,inputBoxSizing:"content-box",width:null,height:null,minHeight:null,initialized:!1,init:function(t,e){this.$input=T(t),this.settings=T.extend({},Garnish.NiceText.defaults,e),this.isVisible()?this.initialize():this.addListener(Garnish.$win,"resize","initializeIfVisible")},isVisible:function(){return 0<this.$input.height()},initialize:function(){this.initialized||(this.initialized=!0,this.removeListener(Garnish.$win,"resize"),this.maxLength=this.$input.attr("maxlength"),this.maxLength&&(this.maxLength=parseInt(this.maxLength)),this.maxLength&&(this.settings.showCharsLeft||Garnish.hasAttr(this.$input,"data-show-chars-left"))&&(this.showCharsLeft=!0,this.$input.removeAttr("maxlength")),this.$input.data("nicetext")&&(Garnish.log("Double-instantiating a transparent text input on an element"),this.$input.data("nicetext").destroy()),this.$input.data("nicetext",this),this.getVal(),this.autoHeight=this.settings.autoHeight&&"TEXTAREA"===this.$input.prop("nodeName"),this.autoHeight&&(this.minHeight=this.getHeightForValue(""),this.updateHeight(),this.width=this.$input.width(),this.addListener(Garnish.$win,"resize","updateHeightIfWidthChanged")),this.settings.hint&&(this.$hintContainer=T('<div class="texthint-container"/>').insertBefore(this.$input),this.$hint=T('<div class="texthint">'+this.settings.hint+"</div>").appendTo(this.$hintContainer),this.$hint.css({top:parseInt(this.$input.css("borderTopWidth"))+parseInt(this.$input.css("paddingTop")),left:parseInt(this.$input.css("borderLeftWidth"))+parseInt(this.$input.css("paddingLeft"))+1}),Garnish.copyTextStyles(this.$input,this.$hint),this.val?this.$hint.hide():this.showingHint=!0,this.addListener(this.$hint,"mousedown",function(t){t.preventDefault(),this.$input.focus()})),this.showCharsLeft&&(this.$charsLeft=T('<div class="'+this.settings.charsLeftClass+'"/>').insertAfter(this.$input),this.updateCharsLeft()),this.addListener(this.$input,"textchange","onTextChange"))},initializeIfVisible:function(){this.isVisible()&&this.initialize()},getVal:function(){return this.val=this.$input.val(),this.val},showHint:function(){this.$hint.velocity("fadeIn",{complete:Garnish.NiceText.hintFadeDuration}),this.showingHint=!0},hideHint:function(){this.$hint.velocity("fadeOut",{complete:Garnish.NiceText.hintFadeDuration}),this.showingHint=!1},onTextChange:function(){this.getVal(),this.$hint&&(this.showingHint&&this.val?this.hideHint():this.showingHint||this.val||this.showHint()),this.autoHeight&&this.updateHeight(),this.showCharsLeft&&this.updateCharsLeft()},buildStage:function(){this.$stage=T("<stage/>").appendTo(Garnish.$bod),this.$stage.css({display:"block",position:"absolute",top:-9999,left:-9999}),this.inputBoxSizing=this.$input.css("box-sizing"),"border-box"===this.inputBoxSizing&&this.$stage.css({"border-top":this.$input.css("border-top"),"border-right":this.$input.css("border-right"),"border-bottom":this.$input.css("border-bottom"),"border-left":this.$input.css("border-left"),"padding-top":this.$input.css("padding-top"),"padding-right":this.$input.css("padding-right"),"padding-bottom":this.$input.css("padding-bottom"),"padding-left":this.$input.css("padding-left"),"-webkit-box-sizing":this.inputBoxSizing,"-moz-box-sizing":this.inputBoxSizing,"box-sizing":this.inputBoxSizing}),Garnish.copyTextStyles(this.$input,this.$stage)},getHeightForValue:function(t){if(this.$stage||this.buildStage(),"border-box"===this.inputBoxSizing?this.$stage.css("width",this.$input.outerWidth()):this.$stage.css("width",this.$input.width()),t)t=(t=(t=(t=(t=(t=t.replace(/&/g,"&")).replace(/</g,"<")).replace(/>/g,">")).replace(/ {2,}/g,function(t){for(var e="",i=0;i<t.length-1;i++)e+=" ";return e+" "})).replace(/[\n\r]$/g,"<br/> ")).replace(/[\n\r]/g,"<br/>");else{t=" ";for(var e=1;e<this.$input.prop("rows");e++)t+="<br/> "}return this.$stage.html(t),"border-box"===this.inputBoxSizing?this.getHeightForValue._height=this.$stage.outerHeight():this.getHeightForValue._height=this.$stage.height(),this.minHeight&&this.getHeightForValue._height<this.minHeight&&(this.getHeightForValue._height=this.minHeight),this.getHeightForValue._height},updateHeight:function(){this.height!==(this.height=this.getHeightForValue(this.val))&&(this.$input.css("min-height",this.height),this.initialized&&this.onHeightChange())},updateHeightIfWidthChanged:function(){this.isVisible()&&this.width!==(this.width=this.$input.width())&&this.width&&this.updateHeight()},onHeightChange:function(){this.settings.onHeightChange()},updateCharsLeft:function(){this.updateCharsLeft._charsLeft=this.maxLength-this.val.length,this.$charsLeft.text(this.updateCharsLeft._charsLeft),0<=this.updateCharsLeft._charsLeft?this.$charsLeft.removeClass(this.settings.negativeCharsLeftClass):this.$charsLeft.addClass(this.settings.negativeCharsLeftClass)},destroy:function(){this.$input.removeData("nicetext"),this.$hint&&this.$hint.remove(),this.$stage&&this.$stage.remove(),this.base()}},{interval:100,hintFadeDuration:50,defaults:{autoHeight:!0,showCharsLeft:!1,charsLeftClass:"chars-left",negativeCharsLeftClass:"negative-chars-left",onHeightChange:T.noop}}),Garnish.Pill=Garnish.Base.extend({$outerContainer:null,$innerContainer:null,$btns:null,$selectedBtn:null,$input:null,init:function(t){this.$outerContainer=T(t),this.$outerContainer.data("pill")&&(Garnish.log("Double-instantiating a pill on an element"),this.$outerContainer.data("pill").destroy()),this.$outerContainer.data("pill",this),this.$innerContainer=this.$outerContainer.find(".btngroup:first"),this.$btns=this.$innerContainer.find(".btn"),this.$selectedBtn=this.$btns.filter(".active:first"),this.$input=this.$outerContainer.find("input:first"),Garnish.preventOutlineOnMouseFocus(this.$innerContainer),this.addListener(this.$btns,"mousedown","onMouseDown"),this.addListener(this.$innerContainer,"keydown","onKeyDown")},select:function(t){this.$selectedBtn.removeClass("active");var e=T(t);e.addClass("active"),this.$input.val(e.attr("data-value")),this.$selectedBtn=e},selectNext:function(){if(this.$selectedBtn.length){var t=this._getSelectedBtnIndex()+1;void 0!==this.$btns[t]&&this.select(this.$btns[t])}else this.select(this.$btns[this.$btns.length-1])},selectPrev:function(){if(this.$selectedBtn.length){var t=this._getSelectedBtnIndex()-1;void 0!==this.$btns[t]&&this.select(this.$btns[t])}else this.select(this.$btns[0])},onMouseDown:function(t){this.select(t.currentTarget)},_getSelectedBtnIndex:function(){return void 0!==this.$selectedBtn[0]?T.inArray(this.$selectedBtn[0],this.$btns):-1},onKeyDown:function(t){switch(t.keyCode){case Garnish.RIGHT_KEY:Garnish.ltr?this.selectNext():this.selectPrev(),t.preventDefault();break;case Garnish.LEFT_KEY:Garnish.ltr?this.selectPrev():this.selectNext(),t.preventDefault()}},destroy:function(){this.$outerContainer.removeData("pill"),this.base()}}),Garnish.Select=Garnish.Base.extend({$container:null,$items:null,$selectedItems:null,$focusedItem:null,mousedownTarget:null,mouseUpTimeout:null,callbackFrame:null,$focusable:null,$first:null,first:null,$last:null,last:null,init:function(t,e,i){this.$container=T(t),void 0===e&&T.isPlainObject(t)?(i=t,e=t=null):void 0===i&&T.isPlainObject(e)&&(i=e,e=null),this.$container.data("select")&&(Garnish.log("Double-instantiating a select on an element"),this.$container.data("select").destroy()),this.$container.data("select",this),this.setSettings(i,Garnish.Select.defaults),this.$items=T(),this.$selectedItems=T(),this.addItems(e),this.settings.allowEmpty&&!this.settings.checkboxMode&&this.addListener(this.$container,"click",function(){this.ignoreClick?this.ignoreClick=!1:this.deselectAll(!0)})},getItemIndex:function(t){return this.$items.index(t[0])},isSelected:function(t){if(Garnish.isJquery(t)){if(!t[0])return!1;t=t[0]}return-1!==T.inArray(t,this.$selectedItems)},selectItem:function(t,e,i){this.settings.multi||this.deselectAll(),this.$first=this.$last=t,this.first=this.last=this.getItemIndex(t),e&&(this.setFocusableItem(t),this.focusItem(t,i)),this._selectItems(t)},selectAll:function(){this.settings.multi&&this.$items.length&&(this.first=0,this.last=this.$items.length-1,this.$first=this.$items.eq(this.first),this.$last=this.$items.eq(this.last),this._selectItems(this.$items))},selectRange:function(t,e){if(!this.settings.multi)return this.selectItem(t,!0);var i,s;this.deselectAll(),this.$last=t,this.last=this.getItemIndex(t),this.setFocusableItem(t),this.focusItem(t,e),s=this.first<this.last?(i=this.first,this.last+1):(i=this.last,this.first+1),this._selectItems(this.$items.slice(i,s))},deselectItem:function(t){var e=this.getItemIndex(t);this.first===e&&(this.$first=this.first=null),this.last===e&&(this.$last=this.last=null),this._deselectItems(t)},deselectAll:function(t){t&&(this.$first=this.first=this.$last=this.last=null),this._deselectItems(this.$items)},deselectOthers:function(t){this.deselectAll(),this.selectItem(t,!0)},toggleItem:function(t,e){this.isSelected(t)?this._canDeselect(t)&&this.deselectItem(t,!0):this.selectItem(t,!0,e)},clearMouseUpTimeout:function(){clearTimeout(this.mouseUpTimeout)},getFirstItem:function(){if(this.$items.length)return this.$items.first()},getLastItem:function(){if(this.$items.length)return this.$items.last()},isPreviousItem:function(t){return 0<t},isNextItem:function(t){return t<this.$items.length-1},getPreviousItem:function(t){if(this.isPreviousItem(t))return this.$items.eq(t-1)},getNextItem:function(t){if(this.isNextItem(t))return this.$items.eq(t+1)},getItemToTheLeft:function(t){var e=Garnish.ltr?"Previous":"Next";if(this["is"+e+"Item"](t)){if(this.settings.horizontal)return this["get"+e+"Item"](t);if(!this.settings.vertical)return this.getClosestItem(t,Garnish.X_AXIS,"<")}},getItemToTheRight:function(t){var e=Garnish.ltr?"Next":"Previous";if(this["is"+e+"Item"](t)){if(this.settings.horizontal)return this["get"+e+"Item"](t);if(!this.settings.vertical)return this.getClosestItem(t,Garnish.X_AXIS,">")}},getItemAbove:function(t){if(this.isPreviousItem(t)){if(this.settings.vertical)return this.getPreviousItem(t);if(!this.settings.horizontal)return this.getClosestItem(t,Garnish.Y_AXIS,"<")}},getItemBelow:function(t){if(this.isNextItem(t)){if(this.settings.vertical)return this.getNextItem(t);if(!this.settings.horizontal)return this.getClosestItem(t,Garnish.Y_AXIS,">")}},getClosestItem:function(t,e,i){for(var s,n=Garnish.Select.closestItemAxisProps[e],h=Garnish.Select.closestItemDirectionProps[i],o=this.$items.eq(t),r=o.offset(),a=r[n.midpointOffset]+Math.round(o[n.midpointSizeFunc]()/2),l=null,g=null,d=null,u=t+(s=Garnish.rtl&&e===Garnish.X_AXIS?-1*h.step:h.step);void 0!==this.$items[u];u+=s){var c=this.$items.eq(u),p=c.offset();if(h.isNextRow(p[n.rowOffset],r[n.rowOffset])){if(null===l)l=p[n.rowOffset];else if(p[n.rowOffset]!==l)break;var m=p[n.midpointOffset]+Math.round(c[n.midpointSizeFunc]()/2),f=Math.abs(a-m);if(!(null===g||f<g))break;g=f,d=c}else if(h.isWrongDirection(p[n.rowOffset],r[n.rowOffset]))break}return d},getFurthestItemToTheLeft:function(t){return this.getFurthestItem(t,"ToTheLeft")},getFurthestItemToTheRight:function(t){return this.getFurthestItem(t,"ToTheRight")},getFurthestItemAbove:function(t){return this.getFurthestItem(t,"Above")},getFurthestItemBelow:function(t){return this.getFurthestItem(t,"Below")},getFurthestItem:function(t,e){for(var i,s;s=this["getItem"+e](t);)i=s,t=this.getItemIndex(i);return i},get totalSelected(){return this.getTotalSelected()},getTotalSelected:function(){return this.$selectedItems.length},addItems:function(t){for(var e=T(t),i=0;i<e.length;i++){var s,n=e[i];T.data(n,"select")&&(Garnish.log("Element was added to more than one selector"),T.data(n,"select").removeItems(n)),T.data(n,"select",this),this.settings.handle?"object"==typeof this.settings.handle?s=T(this.settings.handle):"string"==typeof this.settings.handle?s=T(n).find(this.settings.handle):"function"==typeof this.settings.handle&&(s=T(this.settings.handle(n))):s=T(n),T.data(n,"select-handle",s),s.data("select-item",n),this.addListener(s,"mousedown","onMouseDown"),this.addListener(s,"mouseup","onMouseUp"),this.addListener(s,"click",function(){this.ignoreClick=!0}),this.addListener(n,"keydown","onKeyDown")}this.$items=this.$items.add(e),this.updateIndexes()},removeItems:function(t){t=T.makeArray(t);for(var e=!1,i=!1,s=0;s<t.length;s++){var n=t[s],h=T.inArray(n,this.$items);if(-1!==h){this._deinitItem(n),this.$items.splice(h,1),e=!0;var o=T.inArray(n,this.$selectedItems);-1!==o&&(this.$selectedItems.splice(o,1),i=!0)}}e&&(this.updateIndexes(),i&&(T(t).removeClass(this.settings.selectedClass),this.onSelectionChange()))},removeAllItems:function(){for(var t=0;t<this.$items.length;t++)this._deinitItem(this.$items[t]);this.$items=T(),this.$selectedItems=T(),this.updateIndexes()},updateIndexes:function(){null!==this.first?(this.first=this.getItemIndex(this.$first),this.setFocusableItem(this.$first)):this.$items.length&&this.setFocusableItem(T(this.$items[0])),this.$focusedItem&&(this.setFocusableItem(this.$focusedItem),this.focusItem(this.$focusedItem)),null!==this.last&&(this.last=this.getItemIndex(this.$last))},resetItemOrder:function(){this.$items=T().add(this.$items),this.$selectedItems=T().add(this.$selectedItems),this.updateIndexes()},setFocusableItem:function(t){this.$focusable&&this.$focusable.removeAttr("tabindex"),this.$focusable=t.attr("tabindex","0")},focusItem:function(t,e){if(e){var i=Garnish.$doc.scrollLeft(),s=Garnish.$doc.scrollTop();t.focus(),window.scrollTo(i,s)}else t.focus();this.$focusedItem=t,this.trigger("focusItem",{item:t})},getSelectedItems:function(){return this.$selectedItems},destroy:function(){this.$container.removeData("select"),this.removeAllItems(),this.base()},onMouseDown:function(t){if(t.which===Garnish.PRIMARY_CLICK&&(!this.settings.filter||T(t.target).is(this.settings.filter))){this.mousedownTarget=t.currentTarget;var e=T(T.data(t.currentTarget,"select-item"));null!==this.first&&t.shiftKey?this.selectRange(e,!0):this._actAsCheckbox(t)&&this.toggleItem(e,!0)}},onMouseUp:function(t){if(t.which===Garnish.PRIMARY_CLICK&&(!this.settings.filter||T(t.target).is(this.settings.filter))){var e=T(T.data(t.currentTarget,"select-item"));this._actAsCheckbox(t)||t.shiftKey||t.currentTarget!==this.mousedownTarget||(this.isSelected(e)?(this.clearMouseUpTimeout(),this.mouseUpTimeout=setTimeout(T.proxy(function(){this.deselectOthers(e)},this),300)):(this.deselectAll(),this.selectItem(e,!0,!0)))}},onKeyDown:function(t){if(t.target===t.currentTarget){var e,i,s=Garnish.isCtrlKeyPressed(t),n=t.shiftKey;switch(this.settings.checkboxMode&&this.$focusable.length?-1===(e=T.inArray(this.$focusable[0],this.$items))&&(e=0):e=t.shiftKey?this.last:this.first,t.keyCode){case Garnish.LEFT_KEY:t.preventDefault(),i=null===this.first?Garnish.ltr?this.getLastItem():this.getFirstItem():s?this.getFurthestItemToTheLeft(e):this.getItemToTheLeft(e);break;case Garnish.RIGHT_KEY:t.preventDefault(),i=null===this.first?Garnish.ltr?this.getFirstItem():this.getLastItem():s?this.getFurthestItemToTheRight(e):this.getItemToTheRight(e);break;case Garnish.UP_KEY:t.preventDefault(),null===this.first?(this.$focusable&&(i=this.$focusable.prev()),this.$focusable&&i.length||(i=this.getLastItem())):(i=s?this.getFurthestItemAbove(e):this.getItemAbove(e))||(i=this.getFirstItem());break;case Garnish.DOWN_KEY:t.preventDefault(),null===this.first?(this.$focusable&&(i=this.$focusable.next()),this.$focusable&&i.length||(i=this.getFirstItem())):(i=s?this.getFurthestItemBelow(e):this.getItemBelow(e))||(i=this.getLastItem());break;case Garnish.SPACE_KEY:s||n||(t.preventDefault(),this.isSelected(this.$focusable)?this._canDeselect(this.$focusable)&&this.deselectItem(this.$focusable):this.selectItem(this.$focusable,!0));break;case Garnish.A_KEY:s&&(t.preventDefault(),this.selectAll())}i&&i.length&&(this.settings.checkboxMode?(this.setFocusableItem(i),i.focus(),this.$focusedItem=i,this.trigger("focusItem",{item:i})):null!==this.first&&t.shiftKey?this.selectRange(i):(this.deselectAll(),this.selectItem(i,!0)))}},onSelectionChange:function(){this.callbackFrame&&(Garnish.cancelAnimationFrame(this.callbackFrame),this.callbackFrame=null),this.callbackFrame=Garnish.requestAnimationFrame(T.proxy(function(){this.callbackFrame=null,this.trigger("selectionChange"),this.settings.onSelectionChange()},this))},_actAsCheckbox:function(t){return Garnish.isCtrlKeyPressed(t)?!this.settings.checkboxMode:this.settings.checkboxMode},_canDeselect:function(t){return this.settings.allowEmpty||this.totalSelected>t.length},_selectItems:function(t){t.addClass(this.settings.selectedClass),this.$selectedItems=this.$selectedItems.add(t),this.onSelectionChange()},_deselectItems:function(t){t.removeClass(this.settings.selectedClass),this.$selectedItems=this.$selectedItems.not(t),this.onSelectionChange()},_deinitItem:function(t){var e=T.data(t,"select-handle");e&&(e.removeData("select-item"),this.removeAllListeners(e)),T.removeData(t,"select"),T.removeData(t,"select-handle"),this.$focusedItem&&this.$focusedItem[0]===t&&(this.$focusedItem=null)}},{defaults:{selectedClass:"sel",multi:!1,allowEmpty:!0,vertical:!1,horizontal:!1,handle:null,filter:null,checkboxMode:!1,onSelectionChange:T.noop},closestItemAxisProps:{x:{midpointOffset:"top",midpointSizeFunc:"outerHeight",rowOffset:"left"},y:{midpointOffset:"left",midpointSizeFunc:"outerWidth",rowOffset:"top"}},closestItemDirectionProps:{"<":{step:-1,isNextRow:function(t,e){return t<e},isWrongDirection:function(t,e){return e<t}},">":{step:1,isNextRow:function(t,e){return e<t},isWrongDirection:function(t,e){return t<e}}}}),Garnish.SelectMenu=Garnish.Menu.extend({init:function(t,e,i,s){"function"==typeof i&&(s=i,i={}),i=T.extend({},Garnish.SelectMenu.defaults,i),this.base(t,e,i,s),this.selected=-1},build:function(){this.base(),-1!==this.selected&&this._addSelectedOptionClass(this.selected)},select:function(t){t!==this.selected&&(this.dom.ul&&(-1!==this.selected&&(this.dom.options[this.selected].className=""),this._addSelectedOptionClass(t)),this.selected=t,this.setBtnText(T(this.options[t].label).text()),this.base(t))},_addSelectedOptionClass:function(t){this.dom.options[t].className="sel"},setBtnText:function(t){this.dom.$btnLabel.text(t)}},{defaults:{ulClass:"menu select"}})}(jQuery);
//# sourceMappingURL=garnish.js.map