{"version":3,"sources":["garnish.js"],"names":["$","cancel","raf","erd","Base","extend","_instance","_static","prototype","_prototyping","proto","this","call","base","constructor","klass","_constructing","apply","arguments","ancestor","forEach","implement","toString","valueOf","type","init","source","value","length","test","method","previous","returnValue","toSource","hidden","i","key","desc","Object","getOwnPropertyDescriptor","defineProperty","version","object","block","context","undefined","String","Garnish","getErd","elementResizeDetectorMaker","callOnAdd","triggerResizeEvent","elem","trigger","$win","window","$doc","document","$bod","body","rtl","hasClass","ltr","$scrollContainer","DELETE_KEY","SHIFT_KEY","CTRL_KEY","ALT_KEY","RETURN_KEY","ESC_KEY","SPACE_KEY","LEFT_KEY","UP_KEY","RIGHT_KEY","DOWN_KEY","A_KEY","S_KEY","CMD_KEY","PRIMARY_CLICK","SECONDARY_CLICK","X_AXIS","Y_AXIS","FX_DURATION","TEXT_NODE","log","msg","console","_isMobileBrowser","_isMobileOrTabletBrowser","isMobileBrowser","detectTablets","a","navigator","userAgent","vendor","opera","RegExp","substr","isArray","val","Array","isJquery","jQuery","isString","hasAttr","attr","isTextNode","nodeType","getOffset","_offset","offset","top","scrollTop","left","scrollLeft","getDist","x1","y1","x2","y2","Math","sqrt","pow","hitTest","x","y","_$elem","_x1","_y1","_x2","outerWidth","_y2","outerHeight","isCursorOver","ev","pageX","pageY","copyTextStyles","target","$source","css","fontFamily","fontSize","fontWeight","letterSpacing","lineHeight","textAlign","textIndent","whiteSpace","wordSpacing","wordWrap","getBodyScrollTop","_scrollTop","_maxScrollTop","height","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","id","scrollContainerToElement","container","$elem","$container","scrollParent","prop","elemScrollOffset","elemOffset","targetScrollTop","elemHeight","containerHeight","innerHeight","clientHeight","velocity","mobileHA","SHAKE_STEPS","SHAKE_STEP_DURATION","shake","startingPoint","parseInt","isNaN","_properties","getElement","makeArray","getInputBasename","name","replace","getInputPostVal","$input","findInputs","find","getPostData","inputName","postData","arrayInputCounters","$inputs","eq","inputVal","isArrayInput","croppedName","substring","j","copyInputValues","$sourceInputs","$targetInputs","isCtrlKeyPressed","platform","match","metaKey","ctrlKey","altKey","_eventHandlers","_normalizeEvents","events","split","on","data","handler","push","namespace","off","eventHandler","splice","settings","_namespace","_$listeners","_disabled","floor","random","_listeners","noop","setSettings","defaults","baseSettings","_ev","_splitEvents","trim","_formatEvents","slice","join","addListener","func","proxy","inArray","removeListener","removeAllListeners","disable","enable","destroy","event","special","activate","setup","namespaces","eventHandle","mousedown.garnish-activate","e","preventDefault","click.garnish-activate","keydown.garnish-activate","keyCode","addClass","removeClass","removeAttr","teardown","textchange","handle","el","args","delay","handleObj","targetData","delayTimeout","resize","listenTo","each","BaseDrag","$items","dragging","mousedownX","mousedownY","realMouseX","realMouseY","mouseX","mouseY","mouseDistX","mouseDistY","mouseOffsetX","mouseOffsetY","$targetItem","scrollProperty","scrollAxis","scrollDist","scrollProxy","scrollFrame","_","items","isPlainObject","addItems","allowDragging","startDragging","onDragStart","drag","didMouseMove","_scrollProperty","axis","_winScrollTop","_minMouseScrollY","windowScrollTargetSize","_scrollAxis","_scrollDist","round","_maxMouseScrollY","_winScrollLeft","_minMouseScrollX","_maxMouseScrollX","width","_cancelWindowScroll","onDrag","stopDragging","onDragStop","item","removeItems","add","index","_deinitItem","removeAllItems","_handleMouseDown","which","$target","$handle","_getItemHandle","currentTarget","is","closest","ignoreHandleSelector","_handleMouseMove","_mouseDist","minMouseDist","_handleMouseUp","_scrollWindow","scrollPos","removeData","CheckboxSelect","$all","$options","$checkboxes","filter","not","onAllChange","isAllChecked","checked","disabled","ContextMenu","options","$menu","showingMenu","counter","buildMenu","menuClass","$ul","appendTo","hasOwnProperty","option","$li","$a","label","onClick","mousedown","hideMenu","showMenu","showing","show","hide","Drag","targetItemWidth","targetItemHeight","targetItemPositionInDraggee","$draggee","otherItems","totalOtherItems","helpers","helperTargets","helperPositions","helperLagIncrement","updateHelperPosProxy","updateHelperPosFrame","lastMouseX","lastMouseY","_returningHelpersToDraggees","draggeeDisplay","setDraggee","findDraggee","helperLagIncrementDividend","concat","toArray","singleHelper","_createHelper","removeDraggee","collapseDraggees","appendDraggee","$newDraggee","oldLength","newLength","draggeeVirtualMidpointX","draggeeVirtualMidpointY","getHelperTargetX","getHelperTargetY","returnHelpersToDraggees","$helper","display","visibility","callback","draggeeOffset","onReturnHelpersToDraggees","$draggeeHelper","clone","copyDraggeeInputValuesToHelper","margin","pointer-events","helper","append","helperPos","_getHelperTarget","position","zIndex","helperBaseZindex","opacity","helperOpacity","_updateHelperPos","_i","_j","_lag","helperLagBase","helperSpacingX","helperSpacingY","_showDraggee","remove","DragDrop","$dropTargets","$activeDropTarget","updateDropTargets","dropTargets","_activeDropTarget","_elem","activeDropTargetClass","onDropTargetChange","fadeOutHelpers","duration","complete","DragMove","DragSort","$heightedContainer","$insertion","insertionVisible","oldDraggeeIndexes","newDraggeeIndexes","closestItem","_midpointVersion","_$prevItem","createInsertion","insertion","magnetStrength","_draggeeOffsetX","_draggeeOffsetY","canInsertBefore","$item","canInsertAfter","_getDraggeeIndexes","moveTargetItemToFront","_getItemIndex","first","insertBefore","_placeInsertionWithDraggee","_clearMidpoints","parent","_removeInsertion","_getClosestItem","_updateInsertion","insertAfter","onSortChange","onInsertionPointChange","indexes","_closestItem","_testForClosestItem","_midpoint","_getItemMidpoint","_startXDist","_lastXDist","abs","_startYDist","_lastYDist","_$otherItem","prev","_xDist","_yDist","last","next","_repositionDraggee","get","_moveDraggeeToItem","_$item","prependTo","_mouseDistX","_mouseDistY","_closestItemMouseDistY","_closestItemMouseDistX","EscManager","handlers","escapeLatest","register","obj","unregister","pop","escManager","HUD","$trigger","$fixedTriggerParent","$hud","$tip","$body","$header","$footer","$mainContainer","$main","$shade","orientation","updatingSizeAndPosition","windowWidth","windowHeight","mainWidth","mainHeight","bodyContents","onShow","onHide","onSubmit","activeHUDs","class","shadeClass","hudClass","tipClass","bodyClass","mainContainerClass","mainClass","updateBody","$parent","offsetParent","closeBtn","html","headerClass","footerClass","stopPropagation","closeOtherHUDs","hudID","updateRecords","updateSizeAndPosition","changed","force","updateSizeAndPositionInternal","triggerWidth","triggerHeight","triggerOffset","windowScrollLeft","windowScrollTop","scrollContainerTriggerOffset","scrollContainerScrollLeft","scrollContainerScrollTop","hudBodyWidth","hudBodyHeight","right","bottom","overflow-x","overflow-y","maxHudBodyWidth","maxHudBodyHeight","triggerCenter","clearances","orientations","relevantSize","windowSpacing","triggerSpacing","tipClasses","minBodyWidth","minBodyHeight","maxLeft","minLeft","tipLeft","tipWidth","maxTop","minTop","tipTop","toggle","submit","_handleSubmit","Menu","$anchor","menuId","_windowWidth","_windowHeight","_windowScrollLeft","_windowScrollTop","_anchorOffset","_anchorWidth","_anchorHeight","_anchorOffsetRight","_anchorOffsetBottom","_menuWidth","_menuHeight","addOptions","$menuList","role","aria-hidden","attachToElement","anchor","optionKey","tabindex","setPositionRelativeToAnchor","topClearance","bottomClearance","maxHeight","min","align","_alignCenter","rightClearance","leftClearance","_alignRight","_alignLeft","detach","selectOption","onOptionSelect","selectedOption","MenuBtn","$btn","menu","btn","menuAnchor","aria-owns","aria-haspopup","aria-expanded","onBlur","onKeyDown","$option","$currentOption","click","focusOption","onMouseDown","onMenuHide","MixedInput","elements","focussedElement","blurTimeout","getElementIndex","isText","onFocus","setFocus","setCarotPos","addTextElement","text","TextElement","addElement","focussedElementIndex","selectionStart","selectionEnd","preVal","postVal","newText","removeElement","$prevElem","$nextElem","prevElemVal","newVal","blurFocussedElement","focus","focusPreviousElement","$from","focusNextElement","pos","parentInput","$stage","focussed","interval","padding","setWidth","getIndex","buildStage","getTextWidth","stageWidth","setInterval","NiceText","checkInput","clearInterval","getVal","setVal","onChange","Modal","visible","dragger","desiredWidth","desiredHeight","resizeDragger","resizeStartWidth","resizeStartHeight","setContainer","autoShow","instances","draggable","dragHandleSelector","resizable","$resizeDragHandle","closeOtherModals","visibleModal","onFadeIn","hideOnShadeClick","hideOnEsc","quickShow","quickHide","max","min-width","min-height","_width","getWidth","minGutter","_height","getHeight","onFadeOut","_handleWindowResize","_handleResizeStart","_handleResize","relativeElemPadding","$hint","$charsLeft","autoHeight","maxLength","showCharsLeft","showingHint","inputBoxSizing","minHeight","initialized","input","isVisible","initialize","getHeightForValue","updateHeight","hint","$hintContainer","charsLeftClass","updateCharsLeft","initializeIfVisible","showHint","hintFadeDuration","hideHint","onTextChange","border-top","border-right","border-bottom","border-left","padding-top","padding-right","padding-bottom","padding-left","-webkit-box-sizing","-moz-box-sizing","box-sizing","spaces","onHeightChange","updateHeightIfWidthChanged","_charsLeft","negativeCharsLeftClass","Pill","$outerContainer","$innerContainer","$btns","$selectedBtn","outerContainer","preventOutlineOnMouseFocus","select","selectNext","nextIndex","_getSelectedBtnIndex","selectPrev","prevIndex","Select","$selectedItems","$focusedItem","mousedownTarget","mouseUpTimeout","callbackFrame","$focusable","$first","$last","allowEmpty","checkboxMode","ignoreClick","deselectAll","getItemIndex","isSelected","selectItem","preventScroll","multi","setFocusableItem","focusItem","_selectItems","selectAll","selectRange","sliceFrom","sliceTo","deselectItem","_deselectItems","clearFirst","deselectOthers","toggleItem","_canDeselect","clearMouseUpTimeout","getFirstItem","getLastItem","isPreviousItem","isNextItem","getPreviousItem","getNextItem","getItemToTheLeft","horizontal","vertical","getClosestItem","getItemToTheRight","getItemAbove","getItemBelow","dir","step","axisProps","closestItemAxisProps","dirProps","closestItemDirectionProps","$thisItem","thisOffset","thisMidpoint","midpointOffset","midpointSizeFunc","otherRowPos","smallestMidpointDiff","$closestItem","$otherItem","otherOffset","isNextRow","rowOffset","otherMidpoint","midpointDiff","isWrongDirection","getFurthestItemToTheLeft","getFurthestItem","getFurthestItemToTheRight","getFurthestItemAbove","getFurthestItemBelow","$testItem","totalSelected","getTotalSelected","updateIndexes","itemsChanged","selectionChanged","selectedIndex","selectedClass","onSelectionChange","resetItemOrder","scrollTo","getSelectedItems","shiftKey","_actAsCheckbox","onMouseUp","<","b",">","SelectMenu","selected","build","_addSelectedOptionClass","dom","ul","className","setBtnText","$btnLabel","ulClass"],"mappings":"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","file":"garnish.js","sourcesContent":["/**\n * Garnish UI toolkit\n *\n * @copyright 2013 Pixel & Tonic, Inc.. All rights reserved.\n * @author Brandon Kelly \n * @version 0.1.29\n * @license MIT\n */\n(function($){\n\n/*!\r\n\tBase.js, version 1.1a\r\n\tCopyright 2006-2010, Dean Edwards\r\n\tLicense: http://www.opensource.org/licenses/mit-license.php\r\n*/\r\n\r\nvar Base = function() {\r\n\t// dummy\r\n};\r\n\r\nBase.extend = function(_instance, _static) { // subclass\r\n\tvar extend = Base.prototype.extend;\r\n\r\n\t// build the prototype\r\n\tBase._prototyping = true;\r\n\tvar proto = new this;\r\n\textend.call(proto, _instance);\r\n\tproto.base = function() {\r\n\t\t// call this method from any other method to invoke that method's ancestor\r\n\t};\r\n\tdelete Base._prototyping;\r\n\r\n\t// create the wrapper for the constructor function\r\n\t//var constructor = proto.constructor.valueOf(); //-dean\r\n\tvar constructor = proto.constructor;\r\n\tvar klass = proto.constructor = function() {\r\n\t\tif (!Base._prototyping) {\r\n\t\t\tif (this._constructing || this.constructor == klass) { // instantiation\r\n\t\t\t\tthis._constructing = true;\r\n\t\t\t\tconstructor.apply(this, arguments);\r\n\t\t\t\tdelete this._constructing;\r\n\t\t\t} else if (arguments[0] != null) { // casting\r\n\t\t\t\treturn (arguments[0].extend || extend).call(arguments[0], proto);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// build the class interface\r\n\tklass.ancestor = this;\r\n\tklass.extend = this.extend;\r\n\tklass.forEach = this.forEach;\r\n\tklass.implement = this.implement;\r\n\tklass.prototype = proto;\r\n\tklass.toString = this.toString;\r\n\tklass.valueOf = function(type) {\r\n\t\t//return (type == \"object\") ? klass : constructor; //-dean\r\n\t\treturn (type == \"object\") ? klass : constructor.valueOf();\r\n\t};\r\n\textend.call(klass, _static);\r\n\t// class initialisation\r\n\tif (typeof klass.init == \"function\") klass.init();\r\n\treturn klass;\r\n};\r\n\r\nBase.prototype = {\r\n\textend: function(source, value) {\r\n\t\tif (arguments.length > 1) { // extending with a name/value pair\r\n\t\t\tvar ancestor = this[source];\r\n\t\t\tif (ancestor && (typeof value == \"function\") && // overriding a method?\r\n\t\t\t\t// the valueOf() comparison is to avoid circular references\r\n\t\t\t\t(!ancestor.valueOf || ancestor.valueOf() != value.valueOf()) &&\r\n\t\t\t\t/\\bbase\\b/.test(value)) {\r\n\t\t\t\t// get the underlying method\r\n\t\t\t\tvar method = value.valueOf();\r\n\t\t\t\t// override\r\n\t\t\t\tvalue = function() {\r\n\t\t\t\t\tvar previous = this.base || Base.prototype.base;\r\n\t\t\t\t\tthis.base = ancestor;\r\n\t\t\t\t\tvar returnValue = method.apply(this, arguments);\r\n\t\t\t\t\tthis.base = previous;\r\n\t\t\t\t\treturn returnValue;\r\n\t\t\t\t};\r\n\t\t\t\t// point to the underlying method\r\n\t\t\t\tvalue.valueOf = function(type) {\r\n\t\t\t\t\treturn (type == \"object\") ? value : method;\r\n\t\t\t\t};\r\n\t\t\t\tvalue.toString = Base.toString;\r\n\t\t\t}\r\n\t\t\tthis[source] = value;\r\n\t\t} else if (source) { // extending with an object literal\r\n\t\t\tvar extend = Base.prototype.extend;\r\n\t\t\t// if this object has a customised extend method then use it\r\n\t\t\tif (!Base._prototyping && typeof this != \"function\") {\r\n\t\t\t\textend = this.extend || extend;\r\n\t\t\t}\r\n\t\t\tvar proto = {toSource: null};\r\n\t\t\t// do the \"toString\" and other methods manually\r\n\t\t\tvar hidden = [\"constructor\", \"toString\", \"valueOf\"];\r\n\t\t\t// if we are prototyping then include the constructor\r\n\t\t\tvar i = Base._prototyping ? 0 : 1;\r\n\t\t\twhile (key = hidden[i++]) {\r\n\t\t\t\tif (source[key] != proto[key]) {\r\n\t\t\t\t\textend.call(this, key, source[key]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// copy each of the source object's properties to this object\r\n\t\t\tfor (var key in source) {\r\n\t\t\t\tif (!proto[key]) {\r\n\t\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(source, key);\r\n\t\t\t\t\tif (typeof desc.value != typeof undefined) {\r\n\t\t\t\t\t\t// set the value normally in case it's a function that needs to be overwritten\r\n\t\t\t\t\t\textend.call(this, key, desc.value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// set it while maintaining the original descriptor settings\r\n\t\t\t\t\t\tObject.defineProperty(this, key, desc);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n};\r\n\r\n// initialise\r\nBase = Base.extend({\r\n\tconstructor: function() {\r\n\t\tthis.extend(arguments[0]);\r\n\t}\r\n}, {\r\n\tancestor: Object,\r\n\tversion: \"1.1\",\r\n\r\n\tforEach: function(object, block, context) {\r\n\t\tfor (var key in object) {\r\n\t\t\tif (this.prototype[key] === undefined) {\r\n\t\t\t\tblock.call(context, object[key], key, object);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\timplement: function() {\r\n\t\tfor (var i = 0; i < arguments.length; i++) {\r\n\t\t\tif (typeof arguments[i] == \"function\") {\r\n\t\t\t\t// if it's a function, call it\r\n\t\t\t\targuments[i](this.prototype);\r\n\t\t\t} else {\r\n\t\t\t\t// add the interface using the extend method\r\n\t\t\t\tthis.prototype.extend(arguments[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttoString: function() {\r\n\t\treturn String(this.valueOf());\r\n\t}\r\n});\r\n\n/**\n * @namespace Garnish\n */\n\n// Bail if Garnish is already defined\nif (typeof Garnish !== 'undefined') {\n throw 'Garnish is already defined!';\n}\n\nGarnish = {\n\n // jQuery objects for common elements\n $win: $(window),\n $doc: $(document),\n $bod: $(document.body)\n\n};\n\nGarnish.rtl = Garnish.$bod.hasClass('rtl');\nGarnish.ltr = !Garnish.rtl;\n\nGarnish = $.extend(Garnish, {\n\n $scrollContainer: Garnish.$win,\n\n // Key code constants\n DELETE_KEY: 8,\n SHIFT_KEY: 16,\n CTRL_KEY: 17,\n ALT_KEY: 18,\n RETURN_KEY: 13,\n ESC_KEY: 27,\n SPACE_KEY: 32,\n LEFT_KEY: 37,\n UP_KEY: 38,\n RIGHT_KEY: 39,\n DOWN_KEY: 40,\n A_KEY: 65,\n S_KEY: 83,\n CMD_KEY: 91,\n\n // Mouse button constants\n PRIMARY_CLICK: 1,\n SECONDARY_CLICK: 3,\n\n // Axis constants\n X_AXIS: 'x',\n Y_AXIS: 'y',\n\n FX_DURATION: 100,\n\n // Node types\n TEXT_NODE: 3,\n\n /**\n * Logs a message to the browser's console, if the browser has one.\n *\n * @param {string} msg\n */\n log: function(msg) {\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log(msg);\n }\n },\n\n _isMobileBrowser: null,\n _isMobileOrTabletBrowser: null,\n\n /**\n * Returns whether this is a mobile browser.\n * Detection script courtesy of http://detectmobilebrowsers.com\n *\n * Last updated: 2014-11-24\n *\n * @param {boolean} detectTablets\n * @return {boolean}\n */\n isMobileBrowser: function(detectTablets) {\n var key = detectTablets ? '_isMobileOrTabletBrowser' : '_isMobileBrowser';\n\n if (Garnish[key] === null) {\n var a = navigator.userAgent || navigator.vendor || window.opera;\n Garnish[key] = ((new RegExp('(android|bb\\d+|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' + (detectTablets ? '|android|ipad|playbook|silk' : ''), 'i')).test(a) || /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(a.substr(0, 4)));\n }\n\n return Garnish[key];\n },\n\n /**\n * Returns whether a variable is an array.\n *\n * @param {object} val\n * @return {boolean}\n */\n isArray: function(val) {\n return (val instanceof Array);\n },\n\n /**\n * Returns whether a variable is a jQuery collection.\n *\n * @param {object} val\n * @return {boolean}\n */\n isJquery: function(val) {\n return (val instanceof jQuery);\n },\n\n /**\n * Returns whether a variable is a string.\n *\n * @param {object} val\n * @return {boolean}\n */\n isString: function(val) {\n return (typeof val === 'string');\n },\n\n /**\n * Returns whether an element has an attribute.\n *\n * @see http://stackoverflow.com/questions/1318076/jquery-hasattr-checking-to-see-if-there-is-an-attribute-on-an-element/1318091#1318091\n */\n hasAttr: function(elem, attr) {\n var val = $(elem).attr(attr);\n return (typeof val !== 'undefined' && val !== false);\n },\n\n /**\n * Returns whether something is a text node.\n *\n * @param {object} elem\n * @return {boolean}\n */\n isTextNode: function(elem) {\n return (elem.nodeType === Garnish.TEXT_NODE);\n },\n\n /**\n * Returns the offset of an element within the scroll container, whether that's the window or something else\n */\n getOffset: function(elem) {\n this.getOffset._offset = $(elem).offset();\n\n if (Garnish.$scrollContainer[0] !== Garnish.$win[0]) {\n this.getOffset._offset.top += Garnish.$scrollContainer.scrollTop();\n this.getOffset._offset.left += Garnish.$scrollContainer.scrollLeft();\n }\n\n return this.getOffset._offset;\n },\n\n /**\n * Returns the distance between two coordinates.\n *\n * @param {number} x1 The first coordinate's X position.\n * @param {number} y1 The first coordinate's Y position.\n * @param {number} x2 The second coordinate's X position.\n * @param {number} y2 The second coordinate's Y position.\n * @return {number}\n */\n getDist: function(x1, y1, x2, y2) {\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n },\n\n /**\n * Returns whether an element is touching an x/y coordinate.\n *\n * @param {number} x The coordinate's X position.\n * @param {number} y The coordinate's Y position.\n * @param {object} elem Either an actual element or a jQuery collection.\n * @return {boolean}\n */\n hitTest: function(x, y, elem) {\n Garnish.hitTest._$elem = $(elem);\n Garnish.hitTest._offset = Garnish.hitTest._$elem.offset();\n Garnish.hitTest._x1 = Garnish.hitTest._offset.left;\n Garnish.hitTest._y1 = Garnish.hitTest._offset.top;\n Garnish.hitTest._x2 = Garnish.hitTest._x1 + Garnish.hitTest._$elem.outerWidth();\n Garnish.hitTest._y2 = Garnish.hitTest._y1 + Garnish.hitTest._$elem.outerHeight();\n\n return (x >= Garnish.hitTest._x1 && x < Garnish.hitTest._x2 && y >= Garnish.hitTest._y1 && y < Garnish.hitTest._y2);\n },\n\n /**\n * Returns whether the cursor is touching an element.\n *\n * @param {object} ev The mouse event object containing pageX and pageY properties.\n * @param {object} elem Either an actual element or a jQuery collection.\n * @return {boolean}\n */\n isCursorOver: function(ev, elem) {\n return Garnish.hitTest(ev.pageX, ev.pageY, elem);\n },\n\n /**\n * Copies text styles from one element to another.\n *\n * @param {object} source The source element. Can be either an actual element or a jQuery collection.\n * @param {object} target The target element. Can be either an actual element or a jQuery collection.\n */\n copyTextStyles: function(source, target) {\n var $source = $(source),\n $target = $(target);\n\n $target.css({\n fontFamily: $source.css('fontFamily'),\n fontSize: $source.css('fontSize'),\n fontWeight: $source.css('fontWeight'),\n letterSpacing: $source.css('letterSpacing'),\n lineHeight: $source.css('lineHeight'),\n textAlign: $source.css('textAlign'),\n textIndent: $source.css('textIndent'),\n whiteSpace: $source.css('whiteSpace'),\n wordSpacing: $source.css('wordSpacing'),\n wordWrap: $source.css('wordWrap')\n });\n },\n\n /**\n * Returns the body's real scrollTop, discarding any window banding in Safari.\n *\n * @return {number}\n */\n getBodyScrollTop: function() {\n Garnish.getBodyScrollTop._scrollTop = document.body.scrollTop;\n\n if (Garnish.getBodyScrollTop._scrollTop < 0) {\n Garnish.getBodyScrollTop._scrollTop = 0;\n }\n else {\n Garnish.getBodyScrollTop._maxScrollTop = Garnish.$bod.outerHeight() - Garnish.$win.height();\n\n if (Garnish.getBodyScrollTop._scrollTop > Garnish.getBodyScrollTop._maxScrollTop) {\n Garnish.getBodyScrollTop._scrollTop = Garnish.getBodyScrollTop._maxScrollTop;\n }\n }\n\n return Garnish.getBodyScrollTop._scrollTop;\n },\n\n requestAnimationFrame: (function() {\n var raf = (\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) {\n return window.setTimeout(fn, 20);\n }\n );\n\n return function(fn) {\n return raf(fn);\n };\n })(),\n\n cancelAnimationFrame: (function() {\n var cancel = (\n window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout\n );\n\n return function(id) {\n return cancel(id);\n };\n })(),\n\n /**\n * Scrolls a container element to an element within it.\n *\n * @param {object} container Either an actual element or a jQuery collection.\n * @param {object} elem Either an actual element or a jQuery collection.\n */\n scrollContainerToElement: function(container, elem) {\n var $elem;\n\n if (typeof elem === 'undefined') {\n $elem = $(container);\n $container = $elem.scrollParent();\n }\n else {\n var $container = $(container);\n $elem = $(elem);\n }\n\n if ($container.prop('nodeName') === 'HTML' || $container[0] === Garnish.$doc[0]) {\n $container = Garnish.$win;\n }\n\n var scrollTop = $container.scrollTop(),\n elemOffset = $elem.offset().top;\n\n var elemScrollOffset;\n\n if ($container[0] === window) {\n elemScrollOffset = elemOffset - scrollTop;\n }\n else {\n elemScrollOffset = elemOffset - $container.offset().top;\n }\n\n var targetScrollTop = false;\n\n // Is the element above the fold?\n if (elemScrollOffset < 0) {\n targetScrollTop = scrollTop + elemScrollOffset - 10;\n }\n else {\n var elemHeight = $elem.outerHeight(),\n containerHeight = ($container[0] === window ? window.innerHeight : $container[0].clientHeight);\n\n // Is it below the fold?\n if (elemScrollOffset + elemHeight > containerHeight) {\n targetScrollTop = scrollTop + (elemScrollOffset - (containerHeight - elemHeight)) + 10;\n }\n }\n\n if (targetScrollTop !== false) {\n // Velocity only allows you to scroll to an arbitrary position if you're scrolling the main window\n if ($container[0] === window) {\n $('html').velocity('scroll', {\n offset: targetScrollTop + 'px',\n mobileHA: false\n });\n }\n else {\n $container.scrollTop(targetScrollTop);\n }\n }\n },\n\n SHAKE_STEPS: 10,\n SHAKE_STEP_DURATION: 25,\n\n /**\n * Shakes an element.\n *\n * @param {object} elem Either an actual element or a jQuery collection.\n * @param {string} prop The property that should be adjusted (default is 'margin-left').\n */\n shake: function(elem, prop) {\n var $elem = $(elem);\n\n if (!prop) {\n prop = 'margin-left';\n }\n\n var startingPoint = parseInt($elem.css(prop));\n if (isNaN(startingPoint)) {\n startingPoint = 0;\n }\n\n for (var i = 0; i <= Garnish.SHAKE_STEPS; i++) {\n (function(i) {\n setTimeout(function() {\n Garnish.shake._properties = {};\n Garnish.shake._properties[prop] = startingPoint + (i % 2 ? -1 : 1) * (10 - i);\n $elem.velocity(Garnish.shake._properties, Garnish.SHAKE_STEP_DURATION);\n }, (Garnish.SHAKE_STEP_DURATION * i));\n })(i);\n }\n },\n\n /**\n * Returns the first element in an array or jQuery collection.\n *\n * @param {object} elem\n * @return mixed\n */\n getElement: function(elem) {\n return $.makeArray(elem)[0];\n },\n\n /**\n * Returns the beginning of an input's name= attribute value with any [bracktes] stripped out.\n *\n * @param {object} elem\n * @return string|null\n */\n getInputBasename: function(elem) {\n var name = $(elem).attr('name');\n\n if (name) {\n return name.replace(/\\[.*/, '');\n }\n else {\n return null;\n }\n },\n\n /**\n * Returns an input's value as it would be POSTed.\n * So unchecked checkboxes and radio buttons return null,\n * and multi-selects whose name don't end in \"[]\" only return the last selection\n *\n * @param {object} $input\n * @return {(string|string[])}\n */\n getInputPostVal: function($input) {\n var type = $input.attr('type'),\n val = $input.val();\n\n // Is this an unchecked checkbox or radio button?\n if ((type === 'checkbox' || type === 'radio')) {\n if ($input.prop('checked')) {\n return val;\n }\n else {\n return null;\n }\n }\n\n // Flatten any array values whose input name doesn't end in \"[]\"\n // - e.g. a multi-select\n else if (Garnish.isArray(val) && $input.attr('name').substr(-2) !== '[]') {\n if (val.length) {\n return val[val.length - 1];\n }\n else {\n return null;\n }\n }\n\n // Just return the value\n else {\n return val;\n }\n },\n\n /**\n * Returns the inputs within a container\n *\n * @param {object} container The container element. Can be either an actual element or a jQuery collection.\n * @return {object}\n */\n findInputs: function(container) {\n return $(container).find('input,text,textarea,select,button');\n },\n\n /**\n * Returns the post data within a container.\n *\n * @param {object} container\n * @return {array}\n */\n getPostData: function(container) {\n var postData = {},\n arrayInputCounters = {},\n $inputs = Garnish.findInputs(container);\n\n var inputName;\n\n for (var i = 0; i < $inputs.length; i++) {\n var $input = $inputs.eq(i);\n\n if ($input.prop('disabled')) {\n continue;\n }\n\n inputName = $input.attr('name');\n if (!inputName) {\n continue;\n }\n\n var inputVal = Garnish.getInputPostVal($input);\n if (inputVal === null) {\n continue;\n }\n\n var isArrayInput = (inputName.substr(-2) === '[]');\n\n if (isArrayInput) {\n // Get the cropped input name\n var croppedName = inputName.substring(0, inputName.length - 2);\n\n // Prep the input counter\n if (typeof arrayInputCounters[croppedName] === 'undefined') {\n arrayInputCounters[croppedName] = 0;\n }\n }\n\n if (!Garnish.isArray(inputVal)) {\n inputVal = [inputVal];\n }\n\n for (var j = 0; j < inputVal.length; j++) {\n if (isArrayInput) {\n inputName = croppedName + '[' + arrayInputCounters[croppedName] + ']';\n arrayInputCounters[croppedName]++;\n }\n\n postData[inputName] = inputVal[j];\n }\n }\n\n return postData;\n },\n\n copyInputValues: function(source, target) {\n var $sourceInputs = Garnish.findInputs(source),\n $targetInputs = Garnish.findInputs(target);\n\n for (var i = 0; i < $sourceInputs.length; i++) {\n if (typeof $targetInputs[i] === 'undefined') {\n break;\n }\n\n $targetInputs.eq(i).val(\n $sourceInputs.eq(i).val()\n );\n }\n },\n\n /**\n * Returns whether the \"Ctrl\" key is pressed (or ⌘ if this is a Mac) for a given keyboard event\n *\n * @param ev The keyboard event\n *\n * @return {boolean} Whether the \"Ctrl\" key is pressed\n */\n isCtrlKeyPressed: function(ev) {\n if (window.navigator.platform.match(/Mac/)) {\n // metaKey maps to ⌘ on Macs\n return ev.metaKey;\n }\n else {\n // Both altKey and ctrlKey == true on some Windows keyboards when the right-hand ALT key is pressed\n // so just be safe and make sure altKey == false\n return (ev.ctrlKey && !ev.altKey);\n }\n },\n\n _eventHandlers: [],\n\n _normalizeEvents: function(events) {\n if (typeof events === 'string') {\n events = events.split(' ');\n }\n\n for (var i = 0; i < events.length; i++) {\n if (typeof events[i] === 'string') {\n events[i] = events[i].split('.');\n }\n }\n\n return events;\n },\n\n on: function(target, events, data, handler) {\n if (typeof data === 'function') {\n handler = data;\n data = {};\n }\n\n events = this._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n this._eventHandlers.push({\n target: target,\n type: ev[0],\n namespace: ev[1],\n data: data,\n handler: handler\n });\n }\n },\n\n off: function(target, events, handler) {\n events = this._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n\n for (var j = this._eventHandlers.length - 1; j >= 0; j--) {\n var eventHandler = this._eventHandlers[j];\n\n if (\n eventHandler.target === target &&\n eventHandler.type === ev[0] &&\n (!ev[1] || eventHandler.namespace === ev[1]) &&\n eventHandler.handler === handler\n ) {\n this._eventHandlers.splice(j, 1);\n }\n }\n }\n }\n});\n\n\n/**\n * Garnish base class\n */\nGarnish.Base = Base.extend({\n\n settings: null,\n\n _eventHandlers: null,\n _namespace: null,\n _$listeners: null,\n _disabled: false,\n\n constructor: function() {\n this._eventHandlers = [];\n this._namespace = '.Garnish' + Math.floor(Math.random() * 1000000000);\n this._listeners = [];\n this.init.apply(this, arguments);\n },\n\n init: $.noop,\n\n setSettings: function(settings, defaults) {\n var baseSettings = (typeof this.settings === 'undefined' ? {} : this.settings);\n this.settings = $.extend({}, baseSettings, defaults, settings);\n },\n\n on: function(events, data, handler) {\n if (typeof data === 'function') {\n handler = data;\n data = {};\n }\n\n events = Garnish._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n this._eventHandlers.push({\n type: ev[0],\n namespace: ev[1],\n data: data,\n handler: handler\n });\n }\n },\n\n off: function(events, handler) {\n events = Garnish._normalizeEvents(events);\n\n for (var i = 0; i < events.length; i++) {\n var ev = events[i];\n\n for (var j = this._eventHandlers.length - 1; j >= 0; j--) {\n var eventHandler = this._eventHandlers[j];\n\n if (\n eventHandler.type === ev[0] &&\n (!ev[1] || eventHandler.namespace === ev[1]) &&\n eventHandler.handler === handler\n ) {\n this._eventHandlers.splice(j, 1);\n }\n }\n }\n },\n\n trigger: function(type, data) {\n var ev = {\n type: type,\n target: this\n };\n\n // instance level event handlers\n var i, handler, _ev;\n for (i = 0; i < this._eventHandlers.length; i++) {\n handler = this._eventHandlers[i];\n\n if (handler.type === type) {\n _ev = $.extend({data: handler.data}, data, ev);\n handler.handler(_ev);\n }\n }\n\n // class level event handlers\n for (i = 0; i < Garnish._eventHandlers.length; i++) {\n handler = Garnish._eventHandlers[i];\n\n if (this instanceof handler.target && handler.type === type) {\n _ev = $.extend({data: handler.data}, data, ev);\n handler.handler(_ev);\n }\n }\n },\n\n _splitEvents: function(events) {\n if (typeof events === 'string') {\n events = events.split(',');\n\n for (var i = 0; i < events.length; i++) {\n events[i] = $.trim(events[i]);\n }\n }\n\n return events;\n },\n\n _formatEvents: function(events) {\n events = this._splitEvents(events).slice(0);\n\n for (var i = 0; i < events.length; i++) {\n events[i] += this._namespace;\n }\n\n return events.join(' ');\n },\n\n addListener: function(elem, events, data, func) {\n var $elem = $(elem);\n\n // Ignore if there aren't any elements\n if (!$elem.length) {\n return;\n }\n\n events = this._splitEvents(events);\n\n // Param mapping\n if (typeof func === 'undefined' && typeof data !== 'object') {\n // (elem, events, func)\n func = data;\n data = {};\n }\n\n if (typeof func === 'function') {\n func = $.proxy(func, this);\n }\n else {\n func = $.proxy(this, func);\n }\n\n $elem.on(this._formatEvents(events), data, $.proxy(function() {\n if (!this._disabled) {\n return func.apply(this, arguments);\n }\n }, this));\n\n // Remember that we're listening to this element\n if ($.inArray(elem, this._listeners) === -1) {\n this._listeners.push(elem);\n }\n },\n\n removeListener: function(elem, events) {\n $(elem).off(this._formatEvents(events));\n },\n\n removeAllListeners: function(elem) {\n $(elem).off(this._namespace);\n },\n\n disable: function() {\n this._disabled = true;\n },\n\n enable: function() {\n this._disabled = false;\n },\n\n destroy: function() {\n this.trigger('destroy');\n this.removeAllListeners(this._listeners);\n }\n});\n\n// Custom events\n// -----------------------------------------------------------------------------\n\nvar erd;\n\nfunction getErd() {\n if (typeof erd === 'undefined') {\n erd = elementResizeDetectorMaker({\n callOnAdd: false\n });\n }\n\n return erd;\n}\n\nfunction triggerResizeEvent(elem) {\n $(elem).trigger('resize');\n}\n\n// Work them into jQuery's event system\n$.extend(jQuery.event.special, {\n activate: {\n setup: function(data, namespaces, eventHandle) {\n var activateNamespace = this._namespace + '-activate';\n var $elem = $(this);\n\n $elem.on({\n 'mousedown.garnish-activate': function(e) {\n // Prevent buttons from getting focus on click\n e.preventDefault();\n },\n 'click.garnish-activate': function(e) {\n e.preventDefault();\n\n if (!$elem.hasClass('disabled')) {\n $elem.trigger('activate');\n }\n },\n 'keydown.garnish-activate': function(e) {\n // Ignore if the event was bubbled up, or if it wasn't the space key\n if (this !== $elem[0] || e.keyCode !== Garnish.SPACE_KEY) {\n return;\n }\n\n e.preventDefault();\n\n if (!$elem.hasClass('disabled')) {\n $elem.addClass('active');\n\n Garnish.$doc.on('keyup.garnish-activate', function(e) {\n $elem.removeClass('active');\n\n if (e.keyCode === Garnish.SPACE_KEY) {\n e.preventDefault();\n $elem.trigger('activate');\n }\n\n Garnish.$doc.off('keyup.garnish-activate');\n });\n }\n }\n });\n\n if (!$elem.hasClass('disabled')) {\n $elem.attr('tabindex', '0');\n } else {\n $elem.removeAttr('tabindex');\n }\n },\n teardown: function() {\n $(this).off('.garnish-activate');\n }\n },\n\n textchange: {\n setup: function(data, namespaces, eventHandle) {\n var $elem = $(this);\n $elem.data('garnish-textchange-value', $elem.val());\n $elem.on('keypress.garnish-textchange keyup.garnish-textchange change.garnish-textchange blur.garnish-textchange', function(e) {\n var val = $elem.val();\n if (val !== $elem.data('garnish-textchange-value')) {\n $elem.data('garnish-textchange-value', val);\n $elem.trigger('textchange');\n }\n });\n },\n teardown: function() {\n $(this).off('.garnish-textchange');\n },\n handle: function(ev, data) {\n var el = this;\n var args = arguments;\n var delay = data && typeof data.delay !== 'undefined' ? data.delay : (ev.data && ev.data.delay !== undefined ? ev.data.delay : null);\n var handleObj = ev.handleObj;\n var targetData = $.data(ev.target);\n\n // Was this event configured with a delay?\n if (delay) {\n if (targetData.delayTimeout) {\n clearTimeout(targetData.delayTimeout);\n }\n\n targetData.delayTimeout = setTimeout(function() {\n handleObj.handler.apply(el, args);\n }, delay);\n } else {\n return handleObj.handler.apply(el, args);\n }\n }\n },\n\n resize: {\n setup: function(data, namespaces, eventHandle) {\n // window is the only element that natively supports a resize event\n if (this === window) {\n return false;\n }\n\n $('> :last-child', this).addClass('last');\n getErd().listenTo(this, triggerResizeEvent)\n },\n teardown: function() {\n if (this === window) {\n return false;\n }\n\n getErd().removeListener(this, triggerResizeEvent);\n }\n }\n});\n\n// Give them their own element collection chaining methods\njQuery.each(['activate', 'textchange', 'resize'], function(i, name) {\n jQuery.fn[name] = function(data, fn) {\n return arguments.length > 0 ?\n this.on(name, null, data, fn) :\n this.trigger(name);\n };\n});\n\n/** global: Garnish */\n/**\n * Base drag class\n *\n * Does all the grunt work for manipulating elements via click-and-drag,\n * while leaving the actual element manipulation up to a subclass.\n */\nGarnish.BaseDrag = Garnish.Base.extend(\n {\n $items: null,\n\n dragging: false,\n\n mousedownX: null,\n mousedownY: null,\n realMouseX: null,\n realMouseY: null,\n mouseX: null,\n mouseY: null,\n mouseDistX: null,\n mouseDistY: null,\n mouseOffsetX: null,\n mouseOffsetY: null,\n\n $targetItem: null,\n\n scrollProperty: null,\n scrollAxis: null,\n scrollDist: null,\n scrollProxy: null,\n scrollFrame: null,\n\n _: null,\n\n /**\n * Constructor\n *\n * @param {object} items Elements that should be draggable right away. (Can be skipped.)\n * @param {object} settings Any settings that should override the defaults.\n */\n init: function(items, settings) {\n // Param mapping\n if (typeof settings === 'undefined' && $.isPlainObject(items)) {\n // (settings)\n settings = items;\n items = null;\n }\n\n this.settings = $.extend({}, Garnish.BaseDrag.defaults, settings);\n\n this.$items = $();\n this._ = {};\n\n if (items) {\n this.addItems(items);\n }\n },\n\n /**\n * Returns whether dragging is allowed right now.\n */\n allowDragging: function() {\n return true;\n },\n\n /**\n * Start Dragging\n */\n startDragging: function() {\n this.dragging = true;\n this.onDragStart();\n },\n\n /**\n * Drag\n */\n drag: function(didMouseMove) {\n if (didMouseMove) {\n // Is the mouse up against one of the window edges?\n this.drag._scrollProperty = null;\n\n if (this.settings.axis !== Garnish.X_AXIS) {\n // Scrolling up?\n this.drag._winScrollTop = Garnish.$win.scrollTop();\n this.drag._minMouseScrollY = this.drag._winScrollTop + Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseY < this.drag._minMouseScrollY) {\n this.drag._scrollProperty = 'scrollTop';\n this.drag._scrollAxis = 'Y';\n this.drag._scrollDist = Math.round((this.mouseY - this.drag._minMouseScrollY) / 2);\n }\n else {\n // Scrolling down?\n this.drag._maxMouseScrollY = this.drag._winScrollTop + Garnish.$win.height() - Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseY > this.drag._maxMouseScrollY) {\n this.drag._scrollProperty = 'scrollTop';\n this.drag._scrollAxis = 'Y';\n this.drag._scrollDist = Math.round((this.mouseY - this.drag._maxMouseScrollY) / 2);\n }\n }\n }\n\n if (!this.drag._scrollProperty && this.settings.axis !== Garnish.Y_AXIS) {\n // Scrolling left?\n this.drag._winScrollLeft = Garnish.$win.scrollLeft();\n this.drag._minMouseScrollX = this.drag._winScrollLeft + Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseX < this.drag._minMouseScrollX) {\n this.drag._scrollProperty = 'scrollLeft';\n this.drag._scrollAxis = 'X';\n this.drag._scrollDist = Math.round((this.mouseX - this.drag._minMouseScrollX) / 2);\n }\n else {\n // Scrolling right?\n this.drag._maxMouseScrollX = this.drag._winScrollLeft + Garnish.$win.width() - Garnish.BaseDrag.windowScrollTargetSize;\n\n if (this.mouseX > this.drag._maxMouseScrollX) {\n this.drag._scrollProperty = 'scrollLeft';\n this.drag._scrollAxis = 'X';\n this.drag._scrollDist = Math.round((this.mouseX - this.drag._maxMouseScrollX) / 2);\n }\n }\n }\n\n if (this.drag._scrollProperty) {\n // Are we starting to scroll now?\n if (!this.scrollProperty) {\n if (!this.scrollProxy) {\n this.scrollProxy = $.proxy(this, '_scrollWindow');\n }\n\n if (this.scrollFrame) {\n Garnish.cancelAnimationFrame(this.scrollFrame);\n this.scrollFrame = null;\n }\n\n this.scrollFrame = Garnish.requestAnimationFrame(this.scrollProxy);\n }\n\n this.scrollProperty = this.drag._scrollProperty;\n this.scrollAxis = this.drag._scrollAxis;\n this.scrollDist = this.drag._scrollDist;\n }\n else {\n this._cancelWindowScroll();\n }\n }\n\n this.onDrag();\n },\n\n /**\n * Stop Dragging\n */\n stopDragging: function() {\n this.dragging = false;\n this.onDragStop();\n\n // Clear the scroll animation\n this._cancelWindowScroll();\n },\n\n /**\n * Add Items\n *\n * @param {object} items Elements that should be draggable.\n */\n addItems: function(items) {\n items = $.makeArray(items);\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n // Make sure this element doesn't belong to another dragger\n if ($.data(item, 'drag')) {\n Garnish.log('Element was added to more than one dragger');\n $.data(item, 'drag').removeItems(item);\n }\n\n // Add the item\n $.data(item, 'drag', this);\n\n // Add the listener\n this.addListener(item, 'mousedown', '_handleMouseDown');\n }\n\n this.$items = this.$items.add(items);\n },\n\n /**\n * Remove Items\n *\n * @param {object} items Elements that should no longer be draggable.\n */\n removeItems: function(items) {\n items = $.makeArray(items);\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n // Make sure we actually know about this item\n var index = $.inArray(item, this.$items);\n if (index !== -1) {\n this._deinitItem(item);\n this.$items.splice(index, 1);\n }\n }\n },\n\n /**\n * Remove All Items\n */\n removeAllItems: function() {\n for (var i = 0; i < this.$items.length; i++) {\n this._deinitItem(this.$items[i]);\n }\n\n this.$items = $();\n },\n\n /**\n * Destroy\n */\n destroy: function() {\n this.removeAllItems();\n this.base();\n },\n\n // Events\n // ---------------------------------------------------------------------\n\n /**\n * On Drag Start\n */\n onDragStart: function() {\n Garnish.requestAnimationFrame($.proxy(function() {\n this.trigger('dragStart');\n this.settings.onDragStart();\n }, this));\n },\n\n /**\n * On Drag\n */\n onDrag: function() {\n Garnish.requestAnimationFrame($.proxy(function() {\n this.trigger('drag');\n this.settings.onDrag();\n }, this));\n },\n\n /**\n * On Drag Stop\n */\n onDragStop: function() {\n Garnish.requestAnimationFrame($.proxy(function() {\n this.trigger('dragStop');\n this.settings.onDragStop();\n }, this));\n },\n\n // Private methods\n // ---------------------------------------------------------------------\n\n /**\n * Handle Mouse Down\n */\n _handleMouseDown: function(ev) {\n // Ignore right clicks\n if (ev.which !== Garnish.PRIMARY_CLICK) {\n return;\n }\n\n // Ignore if we already have a target\n if (this.$targetItem) {\n return;\n }\n\n // Ignore if they didn't actually click on the handle\n var $target = $(ev.target),\n $handle = this._getItemHandle(ev.currentTarget);\n\n if (!$target.is($handle) && !$target.closest($handle).length) {\n return;\n }\n\n // Make sure the target isn't a button (unless the button is the handle)\n if (ev.currentTarget !== ev.target && this.settings.ignoreHandleSelector) {\n if (\n $target.is(this.settings.ignoreHandleSelector) ||\n $target.closest(this.settings.ignoreHandleSelector).length\n ) {\n return;\n }\n }\n\n ev.preventDefault();\n\n // Make sure that dragging is allowed right now\n if (!this.allowDragging()) {\n return;\n }\n\n // Capture the target\n this.$targetItem = $(ev.currentTarget);\n\n // Capture the current mouse position\n this.mousedownX = this.mouseX = ev.pageX;\n this.mousedownY = this.mouseY = ev.pageY;\n\n // Capture the difference between the mouse position and the target item's offset\n var offset = this.$targetItem.offset();\n this.mouseOffsetX = ev.pageX - offset.left;\n this.mouseOffsetY = ev.pageY - offset.top;\n\n // Listen for mousemove, mouseup\n this.addListener(Garnish.$doc, 'mousemove', '_handleMouseMove');\n this.addListener(Garnish.$doc, 'mouseup', '_handleMouseUp');\n },\n\n _getItemHandle: function(item) {\n if (this.settings.handle) {\n if (typeof this.settings.handle === 'object') {\n return $(this.settings.handle);\n }\n\n if (typeof this.settings.handle === 'string') {\n return $(this.settings.handle, item);\n }\n\n if (typeof this.settings.handle === 'function') {\n return $(this.settings.handle(item));\n }\n }\n\n return $(item);\n },\n\n /**\n * Handle Mouse Move\n */\n _handleMouseMove: function(ev) {\n ev.preventDefault();\n\n this.realMouseX = ev.pageX;\n this.realMouseY = ev.pageY;\n\n if (this.settings.axis !== Garnish.Y_AXIS) {\n this.mouseX = ev.pageX;\n }\n\n if (this.settings.axis !== Garnish.X_AXIS) {\n this.mouseY = ev.pageY;\n }\n\n this.mouseDistX = this.mouseX - this.mousedownX;\n this.mouseDistY = this.mouseY - this.mousedownY;\n\n if (!this.dragging) {\n // Has the mouse moved far enough to initiate dragging yet?\n this._handleMouseMove._mouseDist = Garnish.getDist(this.mousedownX, this.mousedownY, this.realMouseX, this.realMouseY);\n\n if (this._handleMouseMove._mouseDist >= Garnish.BaseDrag.minMouseDist) {\n this.startDragging();\n }\n }\n\n if (this.dragging) {\n this.drag(true);\n }\n },\n\n /**\n * Handle Moues Up\n */\n _handleMouseUp: function(ev) {\n // Unbind the document events\n this.removeAllListeners(Garnish.$doc);\n\n if (this.dragging) {\n this.stopDragging();\n }\n\n this.$targetItem = null;\n },\n\n /**\n * Scroll Window\n */\n _scrollWindow: function() {\n this._.scrollPos = Garnish.$scrollContainer[this.scrollProperty]();\n Garnish.$scrollContainer[this.scrollProperty](this._.scrollPos + this.scrollDist);\n\n this['mouse' + this.scrollAxis] -= this._.scrollPos - Garnish.$scrollContainer[this.scrollProperty]();\n this['realMouse' + this.scrollAxis] = this['mouse' + this.scrollAxis];\n\n this.drag();\n\n this.scrollFrame = Garnish.requestAnimationFrame(this.scrollProxy);\n },\n\n /**\n * Cancel Window Scroll\n */\n _cancelWindowScroll: function() {\n if (this.scrollFrame) {\n Garnish.cancelAnimationFrame(this.scrollFrame);\n this.scrollFrame = null;\n }\n\n this.scrollProperty = null;\n this.scrollAxis = null;\n this.scrollDist = null;\n },\n\n /**\n * Deinitialize an item.\n */\n _deinitItem: function(item) {\n this.removeAllListeners(item);\n $.removeData(item, 'drag');\n }\n },\n {\n minMouseDist: 1,\n windowScrollTargetSize: 25,\n\n defaults: {\n handle: null,\n axis: null,\n ignoreHandleSelector: 'input, textarea, button, select, .btn',\n\n onDragStart: $.noop,\n onDrag: $.noop,\n onDragStop: $.noop\n }\n }\n);\n\n/** global: Garnish */\n/**\n * Checkbox select class\n */\nGarnish.CheckboxSelect = Garnish.Base.extend(\n {\n $container: null,\n $all: null,\n $options: null,\n\n init: function(container) {\n this.$container = $(container);\n\n // Is this already a checkbox select?\n if (this.$container.data('checkboxSelect')) {\n Garnish.log('Double-instantiating a checkbox select on an element');\n this.$container.data('checkbox-select').destroy();\n }\n\n this.$container.data('checkboxSelect', this);\n\n var $checkboxes = this.$container.find('input');\n this.$all = $checkboxes.filter('.all:first');\n this.$options = $checkboxes.not(this.$all);\n\n this.addListener(this.$all, 'change', 'onAllChange');\n },\n\n onAllChange: function() {\n var isAllChecked = this.$all.prop('checked');\n\n this.$options.prop({\n checked: isAllChecked,\n disabled: isAllChecked\n });\n },\n\n /**\n * Destroy\n */\n destroy: function() {\n this.$container.removeData('checkboxSelect');\n this.base();\n }\n }\n);\n\n/** global: Garnish */\n/**\n * Context Menu\n */\nGarnish.ContextMenu = Garnish.Base.extend(\n {\n $target: null,\n options: null,\n $menu: null,\n showingMenu: false,\n\n /**\n * Constructor\n */\n init: function(target, options, settings) {\n this.$target = $(target);\n\n // Is this already a context menu target?\n if (this.$target.data('contextmenu')) {\n Garnish.log('Double-instantiating a context menu on an element');\n this.$target.data('contextmenu').destroy();\n }\n\n this.$target.data('contextmenu', this);\n\n this.options = options;\n this.setSettings(settings, Garnish.ContextMenu.defaults);\n\n Garnish.ContextMenu.counter++;\n\n this.enable();\n },\n\n /**\n * Build Menu\n */\n buildMenu: function() {\n this.$menu = $('
');\n\n var $ul = $('