{"version":3,"file":"637.d54be67956c5c660.bundle.js","mappings":"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","sources":["webpack://WebComponents/./node_modules/bootstrap/dist/js/bootstrap.js","webpack://WebComponents/./node_modules/jquery-ui/jquery-ui.js"],"sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.4.1'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n selector = selector === '#' ? [] : selector\n var $parent = $(document).find(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.4.1'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.4.1'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n if (typeof $next === 'object' && $next.length) {\n $next[0].offsetWidth // force reflow\n }\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n if (href) {\n href = href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n }\n\n var target = $this.attr('data-target') || href\n var $target = $(document).find(target)\n\n if (!$target.hasClass('carousel')) return\n\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.4.1'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(document).find(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(document).find(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#modals\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n this.fixedContent = '.navbar-fixed-top, .navbar-fixed-bottom'\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.4.1'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n var scrollbarWidth = this.scrollbarWidth\n if (this.bodyIsOverflowing) {\n this.$body.css('padding-right', bodyPad + scrollbarWidth)\n $(this.fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight\n var calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', parseFloat(calculatedPadding) + scrollbarWidth + 'px')\n })\n }\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n $(this.fixedContent).each(function (index, element) {\n var padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var target = $this.attr('data-target') ||\n (href && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\n var $target = $(document).find(target)\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict';\n\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\n var uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n ]\n\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n }\n\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase()\n\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\n if ($.inArray(attrName, uriAttrs) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n var regExp = $(allowedAttributeList).filter(function (index, value) {\n return value instanceof RegExp\n })\n\n // Check if a regular expression validates the attribute.\n for (var i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n // IE 8 and below don't support createHTMLDocument\n if (!document.implementation || !document.implementation.createHTMLDocument) {\n return unsafeHtml\n }\n\n var createdDocument = document.implementation.createHTMLDocument('sanitization')\n createdDocument.body.innerHTML = unsafeHtml\n\n var whitelistKeys = $.map(whiteList, function (el, i) { return i })\n var elements = $(createdDocument.body).find('*')\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var el = elements[i]\n var elName = el.nodeName.toLowerCase()\n\n if ($.inArray(elName, whitelistKeys) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n var attributeList = $.map(el.attributes, function (el) { return el })\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n for (var j = 0, len2 = attributeList.length; j < len2; j++) {\n if (!allowedAttribute(attributeList[j], whitelistedAttributes)) {\n el.removeAttribute(attributeList[j].nodeName)\n }\n }\n }\n\n return createdDocument.body.innerHTML\n }\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.4.1'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n },\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $(document).find($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n var dataAttributes = this.$element.data()\n\n for (var dataAttr in dataAttributes) {\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\n delete dataAttributes[dataAttr]\n }\n }\n\n options = $.extend({}, this.getDefaults(), dataAttributes, options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n if (options.sanitize) {\n options.template = sanitizeHtml(options.template, options.whiteList, options.sanitizeFn)\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo($(document).find(this.options.container)) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n if (this.options.html) {\n if (this.options.sanitize) {\n title = sanitizeHtml(title, this.options.whiteList, this.options.sanitizeFn)\n }\n\n $tip.find('.tooltip-inner').html(title)\n } else {\n $tip.find('.tooltip-inner').text(title)\n }\n\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n Tooltip.prototype.sanitizeHtml = function (unsafeHtml) {\n return sanitizeHtml(unsafeHtml, this.options.whiteList, this.options.sanitizeFn)\n }\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.4.1'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n if (this.options.html) {\n var typeContent = typeof content\n\n if (this.options.sanitize) {\n title = this.sanitizeHtml(title)\n\n if (typeContent === 'string') {\n content = this.sanitizeHtml(content)\n }\n }\n\n $tip.find('.popover-title').html(title)\n $tip.find('.popover-content').children().detach().end()[\n typeContent === 'string' ? 'html' : 'append'\n ](content)\n } else {\n $tip.find('.popover-title').text(title)\n $tip.find('.popover-content').children().detach().end().text(content)\n }\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.4.1'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.4.1'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(document).find(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#affix\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n var target = this.options.target === Affix.DEFAULTS.target ? $(this.options.target) : $(document).find(this.options.target)\n\n this.$target = target\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.4.1'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","var jQuery = require('jquery');\n\n/*! jQuery UI - v1.10.3 - 2013-05-03\n* http://jqueryui.com\n* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.effect.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js, jquery.ui.menu.js, jquery.ui.position.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js\n* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */\n(function( $, undefined ) {\n\nvar uuid = 0,\n\truniqueId = /^ui-id-\\d+$/;\n\n// $.ui might exist from components with no dependencies, e.g., $.ui.position\n$.ui = $.ui || {};\n\n$.extend( $.ui, {\n\tversion: \"1.10.3\",\n\n\tkeyCode: {\n\t\tBACKSPACE: 8,\n\t\tCOMMA: 188,\n\t\tDELETE: 46,\n\t\tDOWN: 40,\n\t\tEND: 35,\n\t\tENTER: 13,\n\t\tESCAPE: 27,\n\t\tHOME: 36,\n\t\tLEFT: 37,\n\t\tNUMPAD_ADD: 107,\n\t\tNUMPAD_DECIMAL: 110,\n\t\tNUMPAD_DIVIDE: 111,\n\t\tNUMPAD_ENTER: 108,\n\t\tNUMPAD_MULTIPLY: 106,\n\t\tNUMPAD_SUBTRACT: 109,\n\t\tPAGE_DOWN: 34,\n\t\tPAGE_UP: 33,\n\t\tPERIOD: 190,\n\t\tRIGHT: 39,\n\t\tSPACE: 32,\n\t\tTAB: 9,\n\t\tUP: 38\n\t}\n});\n\n// plugins\n$.fn.extend({\n\tfocus: (function( orig ) {\n\t\treturn function( delay, fn ) {\n\t\t\treturn typeof delay === \"number\" ?\n\t\t\t\tthis.each(function() {\n\t\t\t\t\tvar elem = this;\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t$( elem ).focus();\n\t\t\t\t\t\tif ( fn ) {\n\t\t\t\t\t\t\tfn.call( elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay );\n\t\t\t\t}) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.focus ),\n\n\tscrollParent: function() {\n\t\tvar scrollParent;\n\t\tif (($.ui.ie && (/(static|relative)/).test(this.css(\"position\"))) || (/absolute/).test(this.css(\"position\"))) {\n\t\t\tscrollParent = this.parents().filter(function() {\n\t\t\t\treturn (/(relative|absolute|fixed)/).test($.css(this,\"position\")) && (/(auto|scroll)/).test($.css(this,\"overflow\")+$.css(this,\"overflow-y\")+$.css(this,\"overflow-x\"));\n\t\t\t}).eq(0);\n\t\t} else {\n\t\t\tscrollParent = this.parents().filter(function() {\n\t\t\t\treturn (/(auto|scroll)/).test($.css(this,\"overflow\")+$.css(this,\"overflow-y\")+$.css(this,\"overflow-x\"));\n\t\t\t}).eq(0);\n\t\t}\n\n\t\treturn (/fixed/).test(this.css(\"position\")) || !scrollParent.length ? $(document) : scrollParent;\n\t},\n\n\tzIndex: function( zIndex ) {\n\t\tif ( zIndex !== undefined ) {\n\t\t\treturn this.css( \"zIndex\", zIndex );\n\t\t}\n\n\t\tif ( this.length ) {\n\t\t\tvar elem = $( this[ 0 ] ), position, value;\n\t\t\twhile ( elem.length && elem[ 0 ] !== document ) {\n\t\t\t\t// Ignore z-index if position is set to a value where z-index is ignored by the browser\n\t\t\t\t// This makes behavior of this function consistent across browsers\n\t\t\t\t// WebKit always returns auto if the element is positioned\n\t\t\t\tposition = elem.css( \"position\" );\n\t\t\t\tif ( position === \"absolute\" || position === \"relative\" || position === \"fixed\" ) {\n\t\t\t\t\t// IE returns 0 when zIndex is not specified\n\t\t\t\t\t// other browsers return a string\n\t\t\t\t\t// we ignore the case of nested elements with an explicit value of 0\n\t\t\t\t\t//
\n\t\t\t\t\tvalue = parseInt( elem.css( \"zIndex\" ), 10 );\n\t\t\t\t\tif ( !isNaN( value ) && value !== 0 ) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telem = elem.parent();\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t},\n\n\tuniqueId: function() {\n\t\treturn this.each(function() {\n\t\t\tif ( !this.id ) {\n\t\t\t\tthis.id = \"ui-id-\" + (++uuid);\n\t\t\t}\n\t\t});\n\t},\n\n\tremoveUniqueId: function() {\n\t\treturn this.each(function() {\n\t\t\tif ( runiqueId.test( this.id ) ) {\n\t\t\t\t$( this ).removeAttr( \"id\" );\n\t\t\t}\n\t\t});\n\t}\n});\n\n// selectors\nfunction focusable( element, isTabIndexNotNaN ) {\n\tvar map, mapName, img,\n\t\tnodeName = element.nodeName.toLowerCase();\n\tif ( \"area\" === nodeName ) {\n\t\tmap = element.parentNode;\n\t\tmapName = map.name;\n\t\tif ( !element.href || !mapName || map.nodeName.toLowerCase() !== \"map\" ) {\n\t\t\treturn false;\n\t\t}\n\t\timg = $( \"img[usemap=#\" + mapName + \"]\" )[0];\n\t\treturn !!img && visible( img );\n\t}\n\treturn ( /input|select|textarea|button|object/.test( nodeName ) ?\n\t\t!element.disabled :\n\t\t\"a\" === nodeName ?\n\t\t\telement.href || isTabIndexNotNaN :\n\t\t\tisTabIndexNotNaN) &&\n\t\t// the element and all of its ancestors must be visible\n\t\tvisible( element );\n}\n\nfunction visible( element ) {\n\treturn $.expr.filters.visible( element ) &&\n\t\t!$( element ).parents().addBack().filter(function() {\n\t\t\treturn $.css( this, \"visibility\" ) === \"hidden\";\n\t\t}).length;\n}\n\n$.extend( $.expr[ \":\" ], {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo(function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t}) :\n\t\t// support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t},\n\n\tfocusable: function( element ) {\n\t\treturn focusable( element, !isNaN( $.attr( element, \"tabindex\" ) ) );\n\t},\n\n\ttabbable: function( element ) {\n\t\tvar tabIndex = $.attr( element, \"tabindex\" ),\n\t\t\tisTabIndexNaN = isNaN( tabIndex );\n\t\treturn ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );\n\t}\n});\n\n// support: jQuery <1.8\nif ( !$( \"\" ).outerWidth( 1 ).jquery ) {\n\t$.each( [ \"Width\", \"Height\" ], function( i, name ) {\n\t\tvar side = name === \"Width\" ? [ \"Left\", \"Right\" ] : [ \"Top\", \"Bottom\" ],\n\t\t\ttype = name.toLowerCase(),\n\t\t\torig = {\n\t\t\t\tinnerWidth: $.fn.innerWidth,\n\t\t\t\tinnerHeight: $.fn.innerHeight,\n\t\t\t\touterWidth: $.fn.outerWidth,\n\t\t\t\touterHeight: $.fn.outerHeight\n\t\t\t};\n\n\t\tfunction reduce( elem, size, border, margin ) {\n\t\t\t$.each( side, function() {\n\t\t\t\tsize -= parseFloat( $.css( elem, \"padding\" + this ) ) || 0;\n\t\t\t\tif ( border ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"border\" + this + \"Width\" ) ) || 0;\n\t\t\t\t}\n\t\t\t\tif ( margin ) {\n\t\t\t\t\tsize -= parseFloat( $.css( elem, \"margin\" + this ) ) || 0;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn size;\n\t\t}\n\n\t\t$.fn[ \"inner\" + name ] = function( size ) {\n\t\t\tif ( size === undefined ) {\n\t\t\t\treturn orig[ \"inner\" + name ].call( this );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this ).css( type, reduce( this, size ) + \"px\" );\n\t\t\t});\n\t\t};\n\n\t\t$.fn[ \"outer\" + name] = function( size, margin ) {\n\t\t\tif ( typeof size !== \"number\" ) {\n\t\t\t\treturn orig[ \"outer\" + name ].call( this, size );\n\t\t\t}\n\n\t\t\treturn this.each(function() {\n\t\t\t\t$( this).css( type, reduce( this, size, true, margin ) + \"px\" );\n\t\t\t});\n\t\t};\n\t});\n}\n\n// support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)\nif ( $( \"\" ).data( \"a-b\", \"a\" ).removeData( \"a-b\" ).data( \"a-b\" ) ) {\n\t$.fn.removeData = (function( removeData ) {\n\t\treturn function( key ) {\n\t\t\tif ( arguments.length ) {\n\t\t\t\treturn removeData.call( this, $.camelCase( key ) );\n\t\t\t} else {\n\t\t\t\treturn removeData.call( this );\n\t\t\t}\n\t\t};\n\t})( $.fn.removeData );\n}\n\n\n\n\n\n// deprecated\n$.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\n\n$.support.selectstart = \"onselectstart\" in document.createElement( \"div\" );\n$.fn.extend({\n\tdisableSelection: function() {\n\t\treturn this.bind( ( $.support.selectstart ? \"selectstart\" : \"mousedown\" ) +\n\t\t\t\".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t});\n\t},\n\n\tenableSelection: function() {\n\t\treturn this.unbind( \".ui-disableSelection\" );\n\t}\n});\n\n$.extend( $.ui, {\n\t// $.ui.plugin is deprecated. Use $.widget() extensions instead.\n\tplugin: {\n\t\tadd: function( module, option, set ) {\n\t\t\tvar i,\n\t\t\t\tproto = $.ui[ module ].prototype;\n\t\t\tfor ( i in set ) {\n\t\t\t\tproto.plugins[ i ] = proto.plugins[ i ] || [];\n\t\t\t\tproto.plugins[ i ].push( [ option, set[ i ] ] );\n\t\t\t}\n\t\t},\n\t\tcall: function( instance, name, args ) {\n\t\t\tvar i,\n\t\t\t\tset = instance.plugins[ name ];\n\t\t\tif ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor ( i = 0; i < set.length; i++ ) {\n\t\t\t\tif ( instance.options[ set[ i ][ 0 ] ] ) {\n\t\t\t\t\tset[ i ][ 1 ].apply( instance.element, args );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// only used by resizable\n\thasScroll: function( el, a ) {\n\n\t\t//If overflow is hidden, the element might have extra content, but the user wants to hide it\n\t\tif ( $( el ).css( \"overflow\" ) === \"hidden\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar scroll = ( a && a === \"left\" ) ? \"scrollLeft\" : \"scrollTop\",\n\t\t\thas = false;\n\n\t\tif ( el[ scroll ] > 0 ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// TODO: determine which cases actually cause this to happen\n\t\t// if the element doesn't have the scroll set, see if it's possible to\n\t\t// set the scroll\n\t\tel[ scroll ] = 1;\n\t\thas = ( el[ scroll ] > 0 );\n\t\tel[ scroll ] = 0;\n\t\treturn has;\n\t}\n});\n\n})( jQuery );\n\n(function( $, undefined ) {\n\nvar uuid = 0,\n\tslice = Array.prototype.slice,\n\t_cleanData = $.cleanData;\n$.cleanData = function( elems ) {\n\tfor ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {\n\t\ttry {\n\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t// http://bugs.jquery.com/ticket/8235\n\t\t} catch( e ) {}\n\t}\n\t_cleanData( elems );\n};\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n};\n\n$.widget.extend = function( target ) {\n\tvar input = slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\t// allow multiple hashes to be passed on init\n\t\toptions = !isMethodCall && args.length ?\n\t\t\t$.widget.extend.apply( null, [ options ].concat(args) ) :\n\t\t\toptions;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} )._init();\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"
\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t// 1.9 BC for #7810\n\t\t\t// TODO remove dual storage\n\t\t\t.removeData( this.widgetName )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( value === undefined ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled ui-state-disabled\", !!value )\n\t\t\t\t.attr( \"aria-disabled\", value );\n\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOption( \"disabled\", false );\n\t},\n\tdisable: function() {\n\t\treturn this._setOption( \"disabled\", true );\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\t// accept selectors, DOM elements\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^(\\w+)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) + this.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\n})( jQuery );\n\n(function( $, undefined ) {\n\nvar mouseHandled = false;\n$( document ).mouseup( function() {\n\tmouseHandled = false;\n});\n\n$.widget(\"ui.mouse\", {\n\tversion: \"1.10.3\",\n\toptions: {\n\t\tcancel: \"input,textarea,button,select,option\",\n\t\tdistance: 1,\n\t\tdelay: 0\n\t},\n\t_mouseInit: function() {\n\t\tvar that = this;\n\n\t\tthis.element\n\t\t\t.bind(\"mousedown.\"+this.widgetName, function(event) {\n\t\t\t\treturn that._mouseDown(event);\n\t\t\t})\n\t\t\t.bind(\"click.\"+this.widgetName, function(event) {\n\t\t\t\tif (true === $.data(event.target, that.widgetName + \".preventClickEvent\")) {\n\t\t\t\t\t$.removeData(event.target, that.widgetName + \".preventClickEvent\");\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.started = false;\n\t},\n\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\n\t// other instances of mouse\n\t_mouseDestroy: function() {\n\t\tthis.element.unbind(\".\"+this.widgetName);\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\t$(document)\n\t\t\t\t.unbind(\"mousemove.\"+this.widgetName, this._mouseMoveDelegate)\n\t\t\t\t.unbind(\"mouseup.\"+this.widgetName, this._mouseUpDelegate);\n\t\t}\n\t},\n\n\t_mouseDown: function(event) {\n\t\t// don't let more than one widget handle mouseStart\n\t\tif( mouseHandled ) { return; }\n\n\t\t// we may have missed mouseup (out of window)\n\t\t(this._mouseStarted && this._mouseUp(event));\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = (event.which === 1),\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\n\t\t\t// disabled inputs (#7620)\n\t\t\telIsCancel = (typeof this.options.cancel === \"string\" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);\n\t\tif (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.mouseDelayMet = !this.options.delay;\n\t\tif (!this.mouseDelayMet) {\n\t\t\tthis._mouseDelayTimer = setTimeout(function() {\n\t\t\t\tthat.mouseDelayMet = true;\n\t\t\t}, this.options.delay);\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted = (this._mouseStart(event) !== false);\n\t\t\tif (!this._mouseStarted) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Click event may never have fired (Gecko & Opera)\n\t\tif (true === $.data(event.target, this.widgetName + \".preventClickEvent\")) {\n\t\t\t$.removeData(event.target, this.widgetName + \".preventClickEvent\");\n\t\t}\n\n\t\t// these delegates are required to keep context\n\t\tthis._mouseMoveDelegate = function(event) {\n\t\t\treturn that._mouseMove(event);\n\t\t};\n\t\tthis._mouseUpDelegate = function(event) {\n\t\t\treturn that._mouseUp(event);\n\t\t};\n\t\t$(document)\n\t\t\t.bind(\"mousemove.\"+this.widgetName, this._mouseMoveDelegate)\n\t\t\t.bind(\"mouseup.\"+this.widgetName, this._mouseUpDelegate);\n\n\t\tevent.preventDefault();\n\n\t\tmouseHandled = true;\n\t\treturn true;\n\t},\n\n\t_mouseMove: function(event) {\n\t\t// IE mouseup check - mouseup happened when mouse was out of window\n\t\tif ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {\n\t\t\treturn this._mouseUp(event);\n\t\t}\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseDrag(event);\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {\n\t\t\tthis._mouseStarted =\n\t\t\t\t(this._mouseStart(this._mouseDownEvent, event) !== false);\n\t\t\t(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));\n\t\t}\n\n\t\treturn !this._mouseStarted;\n\t},\n\n\t_mouseUp: function(event) {\n\t\t$(document)\n\t\t\t.unbind(\"mousemove.\"+this.widgetName, this._mouseMoveDelegate)\n\t\t\t.unbind(\"mouseup.\"+this.widgetName, this._mouseUpDelegate);\n\n\t\tif (this._mouseStarted) {\n\t\t\tthis._mouseStarted = false;\n\n\t\t\tif (event.target === this._mouseDownEvent.target) {\n\t\t\t\t$.data(event.target, this.widgetName + \".preventClickEvent\", true);\n\t\t\t}\n\n\t\t\tthis._mouseStop(event);\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseDistanceMet: function(event) {\n\t\treturn (Math.max(\n\t\t\t\tMath.abs(this._mouseDownEvent.pageX - event.pageX),\n\t\t\t\tMath.abs(this._mouseDownEvent.pageY - event.pageY)\n\t\t\t) >= this.options.distance\n\t\t);\n\t},\n\n\t_mouseDelayMet: function(/* event */) {\n\t\treturn this.mouseDelayMet;\n\t},\n\n\t// These are placeholder methods, to be overriden by extending plugin\n\t_mouseStart: function(/* event */) {},\n\t_mouseDrag: function(/* event */) {},\n\t_mouseStop: function(/* event */) {},\n\t_mouseCapture: function(/* event */) { return true; }\n});\n\n})(jQuery);\n\n(function( $, undefined ) {\n\n$.widget(\"ui.draggable\", $.ui.mouse, {\n\tversion: \"1.10.3\",\n\twidgetEventPrefix: \"drag\",\n\toptions: {\n\t\taddClasses: true,\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectToSortable: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\tiframeFix: false,\n\t\topacity: false,\n\t\trefreshPositions: false,\n\t\trevert: false,\n\t\trevertDuration: 500,\n\t\tscope: \"default\",\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tsnap: false,\n\t\tsnapMode: \"both\",\n\t\tsnapTolerance: 20,\n\t\tstack: false,\n\t\tzIndex: false,\n\n\t\t// callbacks\n\t\tdrag: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\t_create: function() {\n\n\t\tif (this.options.helper === \"original\" && !(/^(?:r|a|f)/).test(this.element.css(\"position\"))) {\n\t\t\tthis.element[0].style.position = \"relative\";\n\t\t}\n\t\tif (this.options.addClasses){\n\t\t\tthis.element.addClass(\"ui-draggable\");\n\t\t}\n\t\tif (this.options.disabled){\n\t\t\tthis.element.addClass(\"ui-draggable-disabled\");\n\t\t}\n\n\t\tthis._mouseInit();\n\n\t},\n\n\t_destroy: function() {\n\t\tthis.element.removeClass( \"ui-draggable ui-draggable-dragging ui-draggable-disabled\" );\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseCapture: function(event) {\n\n\t\tvar o = this.options;\n\n\t\t// among others, prevent a drag on a resizable-handle\n\t\tif (this.helper || o.disabled || $(event.target).closest(\".ui-resizable-handle\").length > 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//Quit if we're not on a valid handle\n\t\tthis.handle = this._getHandle(event);\n\t\tif (!this.handle) {\n\t\t\treturn false;\n\t\t}\n\n\t\t$(o.iframeFix === true ? \"iframe\" : o.iframeFix).each(function() {\n\t\t\t$(\"
\")\n\t\t\t.css({\n\t\t\t\twidth: this.offsetWidth+\"px\", height: this.offsetHeight+\"px\",\n\t\t\t\tposition: \"absolute\", opacity: \"0.001\", zIndex: 1000\n\t\t\t})\n\t\t\t.css($(this).offset())\n\t\t\t.appendTo(\"body\");\n\t\t});\n\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar o = this.options;\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper(event);\n\n\t\tthis.helper.addClass(\"ui-draggable-dragging\");\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//If ddmanager is used for droppables, set the global draggable\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Store the helper's css position\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\t\tthis.scrollParent = this.helper.scrollParent();\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tthis.offsetParentCssPosition = this.offsetParent.css( \"position\" );\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.offset = this.positionAbs = this.element.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t//Reset scroll cache\n\t\tthis.offset.scroll = false;\n\n\t\t$.extend(this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper\n\t\t});\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this.position = this._generatePosition(event);\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\n\n\t\t//Set a containment if given in the options\n\t\tthis._setContainment();\n\n\t\t//Trigger event + callbacks\n\t\tif(this._trigger(\"start\", event) === false) {\n\t\t\tthis._clear();\n\t\t\treturn false;\n\t\t}\n\n\t\t//Recache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t//Prepare the droppable offsets\n\t\tif ($.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t}\n\n\n\t\tthis._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStart(this, event);\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function(event, noPropagation) {\n\t\t// reset any necessary cached properties (see #5009)\n\t\tif ( this.offsetParentCssPosition === \"fixed\" ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition(event);\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\t//Call plugins and callbacks and use the resulting position if something is returned\n\t\tif (!noPropagation) {\n\t\t\tvar ui = this._uiHash();\n\t\t\tif(this._trigger(\"drag\", event, ui) === false) {\n\t\t\t\tthis._mouseUp({});\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.position = ui.position;\n\t\t}\n\n\t\tif(!this.options.axis || this.options.axis !== \"y\") {\n\t\t\tthis.helper[0].style.left = this.position.left+\"px\";\n\t\t}\n\t\tif(!this.options.axis || this.options.axis !== \"x\") {\n\t\t\tthis.helper[0].style.top = this.position.top+\"px\";\n\t\t}\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.drag(this, event);\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tvar that = this,\n\t\t\tdropped = false;\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour) {\n\t\t\tdropped = $.ui.ddmanager.drop(this, event);\n\t\t}\n\n\t\t//if a drop comes from outside (a sortable)\n\t\tif(this.dropped) {\n\t\t\tdropped = this.dropped;\n\t\t\tthis.dropped = false;\n\t\t}\n\n\t\t//if the original element is no longer in the DOM don't bother to continue (see #8269)\n\t\tif ( this.options.helper === \"original\" && !$.contains( this.element[ 0 ].ownerDocument, this.element[ 0 ] ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif((this.options.revert === \"invalid\" && !dropped) || (this.options.revert === \"valid\" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) {\n\t\t\t$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {\n\t\t\t\tif(that._trigger(\"stop\", event) !== false) {\n\t\t\t\t\tthat._clear();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(this._trigger(\"stop\", event) !== false) {\n\t\t\t\tthis._clear();\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseUp: function(event) {\n\t\t//Remove frame helpers\n\t\t$(\"div.ui-draggable-iframeFix\").each(function() {\n\t\t\tthis.parentNode.removeChild(this);\n\t\t});\n\n\t\t//If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003)\n\t\tif( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.dragStop(this, event);\n\t\t}\n\n\t\treturn $.ui.mouse.prototype._mouseUp.call(this, event);\n\t},\n\n\tcancel: function() {\n\n\t\tif(this.helper.is(\".ui-draggable-dragging\")) {\n\t\t\tthis._mouseUp({});\n\t\t} else {\n\t\t\tthis._clear();\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\t_getHandle: function(event) {\n\t\treturn this.options.handle ?\n\t\t\t!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :\n\t\t\ttrue;\n\t},\n\n\t_createHelper: function(event) {\n\n\t\tvar o = this.options,\n\t\t\thelper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === \"clone\" ? this.element.clone().removeAttr(\"id\") : this.element);\n\n\t\tif(!helper.parents(\"body\").length) {\n\t\t\thelper.appendTo((o.appendTo === \"parent\" ? this.element[0].parentNode : o.appendTo));\n\t\t}\n\n\t\tif(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css(\"position\"))) {\n\t\t\thelper.css(\"position\", \"absolute\");\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function(obj) {\n\t\tif (typeof obj === \"string\") {\n\t\t\tobj = obj.split(\" \");\n\t\t}\n\t\tif ($.isArray(obj)) {\n\t\t\tobj = {left: +obj[0], top: +obj[1] || 0};\n\t\t}\n\t\tif (\"left\" in obj) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif (\"right\" in obj) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif (\"top\" in obj) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif (\"bottom\" in obj) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\n\t\tif(this.cssPosition === \"absolute\" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t//This needs to be actually done for all browsers, since pageX/pageY includes this information\n\t\t//Ugly IE fix\n\t\tif((this.offsetParent[0] === document.body) ||\n\t\t\t(this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === \"html\" && $.ui.ie)) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"),10) || 0),\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"),10) || 0)\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif(this.cssPosition === \"relative\") {\n\t\t\tvar p = this.element.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - (parseInt(this.helper.css(\"top\"),10) || 0) + this.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - (parseInt(this.helper.css(\"left\"),10) || 0) + this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: (parseInt(this.element.css(\"marginLeft\"),10) || 0),\n\t\t\ttop: (parseInt(this.element.css(\"marginTop\"),10) || 0),\n\t\t\tright: (parseInt(this.element.css(\"marginRight\"),10) || 0),\n\t\t\tbottom: (parseInt(this.element.css(\"marginBottom\"),10) || 0)\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar over, c, ce,\n\t\t\to = this.options;\n\n\t\tif ( !o.containment ) {\n\t\t\tthis.containment = null;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\t$( window ).scrollLeft() + $( window ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t$( window ).scrollTop() + ( $( window ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"document\") {\n\t\t\tthis.containment = [\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\t$( document ).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( $( document ).height() || document.body.parentNode.scrollHeight ) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment.constructor === Array ) {\n\t\t\tthis.containment = o.containment;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\n\t\tc = $( o.containment );\n\t\tce = c[ 0 ];\n\n\t\tif( !ce ) {\n\t\t\treturn;\n\t\t}\n\n\t\tover = c.css( \"overflow\" ) !== \"hidden\";\n\n\t\tthis.containment = [\n\t\t\t( parseInt( c.css( \"borderLeftWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingLeft\" ), 10 ) || 0 ),\n\t\t\t( parseInt( c.css( \"borderTopWidth\" ), 10 ) || 0 ) + ( parseInt( c.css( \"paddingTop\" ), 10 ) || 0 ) ,\n\t\t\t( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - ( parseInt( c.css( \"borderRightWidth\" ), 10 ) || 0 ) - ( parseInt( c.css( \"paddingRight\" ), 10 ) || 0 ) - this.helperProportions.width - this.margins.left - this.margins.right,\n\t\t\t( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - ( parseInt( c.css( \"borderBottomWidth\" ), 10 ) || 0 ) - ( parseInt( c.css( \"paddingBottom\" ), 10 ) || 0 ) - this.helperProportions.height - this.margins.top - this.margins.bottom\n\t\t];\n\t\tthis.relative_container = c;\n\t},\n\n\t_convertPositionTo: function(d, pos) {\n\n\t\tif(!pos) {\n\t\t\tpos = this.position;\n\t\t}\n\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent;\n\n\t\t//Cache the scroll\n\t\tif (!this.offset.scroll) {\n\t\t\tthis.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpos.top\t+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.top * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top * mod -\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : this.offset.scroll.top ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpos.left +\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.left * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left * mod\t-\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function(event) {\n\n\t\tvar containment, co, top, left,\n\t\t\to = this.options,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !( this.scrollParent[ 0 ] !== document && $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ? this.offsetParent : this.scrollParent,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY;\n\n\t\t//Cache the scroll\n\t\tif (!this.offset.scroll) {\n\t\t\tthis.offset.scroll = {top : scroll.scrollTop(), left : scroll.scrollLeft()};\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\t// If we are not dragging yet, we won't check for options\n\t\tif ( this.originalPosition ) {\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( this.relative_container ){\n\t\t\t\t\tco = this.relative_container.offset();\n\t\t\t\t\tcontainment = [\n\t\t\t\t\t\tthis.containment[ 0 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 1 ] + co.top,\n\t\t\t\t\t\tthis.containment[ 2 ] + co.left,\n\t\t\t\t\t\tthis.containment[ 3 ] + co.top\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcontainment = this.containment;\n\t\t\t\t}\n\n\t\t\t\tif(event.pageX - this.offset.click.left < containment[0]) {\n\t\t\t\t\tpageX = containment[0] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top < containment[1]) {\n\t\t\t\t\tpageY = containment[1] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif(event.pageX - this.offset.click.left > containment[2]) {\n\t\t\t\t\tpageX = containment[2] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top > containment[3]) {\n\t\t\t\t\tpageY = containment[3] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(o.grid) {\n\t\t\t\t//Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950)\n\t\t\t\ttop = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY;\n\t\t\t\tpageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\n\n\t\t\t\tleft = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX;\n\t\t\t\tpageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpageY -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.top\t-\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.top -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : this.offset.scroll.top )\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpageX -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.left -\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.left -\t\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : this.offset.scroll.left )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_clear: function() {\n\t\tthis.helper.removeClass(\"ui-draggable-dragging\");\n\t\tif(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) {\n\t\t\tthis.helper.remove();\n\t\t}\n\t\tthis.helper = null;\n\t\tthis.cancelHelperRemoval = false;\n\t},\n\n\t// From now on bulk stuff - mainly helpers\n\n\t_trigger: function(type, event, ui) {\n\t\tui = ui || this._uiHash();\n\t\t$.ui.plugin.call(this, type, [event, ui]);\n\t\t//The absolute position has to be recalculated after plugins\n\t\tif(type === \"drag\") {\n\t\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\t\t}\n\t\treturn $.Widget.prototype._trigger.call(this, type, event, ui);\n\t},\n\n\tplugins: {},\n\n\t_uiHash: function() {\n\t\treturn {\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\toriginalPosition: this.originalPosition,\n\t\t\toffset: this.positionAbs\n\t\t};\n\t}\n\n});\n\n$.ui.plugin.add(\"draggable\", \"connectToSortable\", {\n\tstart: function(event, ui) {\n\n\t\tvar inst = $(this).data(\"ui-draggable\"), o = inst.options,\n\t\t\tuiSortable = $.extend({}, ui, { item: inst.element });\n\t\tinst.sortables = [];\n\t\t$(o.connectToSortable).each(function() {\n\t\t\tvar sortable = $.data(this, \"ui-sortable\");\n\t\t\tif (sortable && !sortable.options.disabled) {\n\t\t\t\tinst.sortables.push({\n\t\t\t\t\tinstance: sortable,\n\t\t\t\t\tshouldRevert: sortable.options.revert\n\t\t\t\t});\n\t\t\t\tsortable.refreshPositions();\t// Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).\n\t\t\t\tsortable._trigger(\"activate\", event, uiSortable);\n\t\t\t}\n\t\t});\n\n\t},\n\tstop: function(event, ui) {\n\n\t\t//If we are still over the sortable, we fake the stop event of the sortable, but also remove helper\n\t\tvar inst = $(this).data(\"ui-draggable\"),\n\t\t\tuiSortable = $.extend({}, ui, { item: inst.element });\n\n\t\t$.each(inst.sortables, function() {\n\t\t\tif(this.instance.isOver) {\n\n\t\t\t\tthis.instance.isOver = 0;\n\n\t\t\t\tinst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance\n\t\t\t\tthis.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)\n\n\t\t\t\t//The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: \"valid/invalid\"\n\t\t\t\tif(this.shouldRevert) {\n\t\t\t\t\tthis.instance.options.revert = this.shouldRevert;\n\t\t\t\t}\n\n\t\t\t\t//Trigger the stop of the sortable\n\t\t\t\tthis.instance._mouseStop(event);\n\n\t\t\t\tthis.instance.options.helper = this.instance.options._helper;\n\n\t\t\t\t//If the helper has been the original item, restore properties in the sortable\n\t\t\t\tif(inst.options.helper === \"original\") {\n\t\t\t\t\tthis.instance.currentItem.css({ top: \"auto\", left: \"auto\" });\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tthis.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance\n\t\t\t\tthis.instance._trigger(\"deactivate\", event, uiSortable);\n\t\t\t}\n\n\t\t});\n\n\t},\n\tdrag: function(event, ui) {\n\n\t\tvar inst = $(this).data(\"ui-draggable\"), that = this;\n\n\t\t$.each(inst.sortables, function() {\n\n\t\t\tvar innermostIntersecting = false,\n\t\t\t\tthisSortable = this;\n\n\t\t\t//Copy over some variables to allow calling the sortable's native _intersectsWith\n\t\t\tthis.instance.positionAbs = inst.positionAbs;\n\t\t\tthis.instance.helperProportions = inst.helperProportions;\n\t\t\tthis.instance.offset.click = inst.offset.click;\n\n\t\t\tif(this.instance._intersectsWith(this.instance.containerCache)) {\n\t\t\t\tinnermostIntersecting = true;\n\t\t\t\t$.each(inst.sortables, function () {\n\t\t\t\t\tthis.instance.positionAbs = inst.positionAbs;\n\t\t\t\t\tthis.instance.helperProportions = inst.helperProportions;\n\t\t\t\t\tthis.instance.offset.click = inst.offset.click;\n\t\t\t\t\tif (this !== thisSortable &&\n\t\t\t\t\t\tthis.instance._intersectsWith(this.instance.containerCache) &&\n\t\t\t\t\t\t$.contains(thisSortable.instance.element[0], this.instance.element[0])\n\t\t\t\t\t) {\n\t\t\t\t\t\tinnermostIntersecting = false;\n\t\t\t\t\t}\n\t\t\t\t\treturn innermostIntersecting;\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tif(innermostIntersecting) {\n\t\t\t\t//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once\n\t\t\t\tif(!this.instance.isOver) {\n\n\t\t\t\t\tthis.instance.isOver = 1;\n\t\t\t\t\t//Now we fake the start of dragging for the sortable instance,\n\t\t\t\t\t//by cloning the list group item, appending it to the sortable and using it as inst.currentItem\n\t\t\t\t\t//We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)\n\t\t\t\t\tthis.instance.currentItem = $(that).clone().removeAttr(\"id\").appendTo(this.instance.element).data(\"ui-sortable-item\", true);\n\t\t\t\t\tthis.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it\n\t\t\t\t\tthis.instance.options.helper = function() { return ui.helper[0]; };\n\n\t\t\t\t\tevent.target = this.instance.currentItem[0];\n\t\t\t\t\tthis.instance._mouseCapture(event, true);\n\t\t\t\t\tthis.instance._mouseStart(event, true, true);\n\n\t\t\t\t\t//Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes\n\t\t\t\t\tthis.instance.offset.click.top = inst.offset.click.top;\n\t\t\t\t\tthis.instance.offset.click.left = inst.offset.click.left;\n\t\t\t\t\tthis.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;\n\t\t\t\t\tthis.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;\n\n\t\t\t\t\tinst._trigger(\"toSortable\", event);\n\t\t\t\t\tinst.dropped = this.instance.element; //draggable revert needs that\n\t\t\t\t\t//hack so receive/update callbacks work (mostly)\n\t\t\t\t\tinst.currentItem = inst.element;\n\t\t\t\t\tthis.instance.fromOutside = inst;\n\n\t\t\t\t}\n\n\t\t\t\t//Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable\n\t\t\t\tif(this.instance.currentItem) {\n\t\t\t\t\tthis.instance._mouseDrag(event);\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t//If it doesn't intersect with the sortable, and it intersected before,\n\t\t\t\t//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval\n\t\t\t\tif(this.instance.isOver) {\n\n\t\t\t\t\tthis.instance.isOver = 0;\n\t\t\t\t\tthis.instance.cancelHelperRemoval = true;\n\n\t\t\t\t\t//Prevent reverting on this forced stop\n\t\t\t\t\tthis.instance.options.revert = false;\n\n\t\t\t\t\t// The out event needs to be triggered independently\n\t\t\t\t\tthis.instance._trigger(\"out\", event, this.instance._uiHash(this.instance));\n\n\t\t\t\t\tthis.instance._mouseStop(event, true);\n\t\t\t\t\tthis.instance.options.helper = this.instance.options._helper;\n\n\t\t\t\t\t//Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size\n\t\t\t\t\tthis.instance.currentItem.remove();\n\t\t\t\t\tif(this.instance.placeholder) {\n\t\t\t\t\t\tthis.instance.placeholder.remove();\n\t\t\t\t\t}\n\n\t\t\t\t\tinst._trigger(\"fromSortable\", event);\n\t\t\t\t\tinst.dropped = false; //draggable revert needs that\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t});\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"cursor\", {\n\tstart: function() {\n\t\tvar t = $(\"body\"), o = $(this).data(\"ui-draggable\").options;\n\t\tif (t.css(\"cursor\")) {\n\t\t\to._cursor = t.css(\"cursor\");\n\t\t}\n\t\tt.css(\"cursor\", o.cursor);\n\t},\n\tstop: function() {\n\t\tvar o = $(this).data(\"ui-draggable\").options;\n\t\tif (o._cursor) {\n\t\t\t$(\"body\").css(\"cursor\", o._cursor);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"opacity\", {\n\tstart: function(event, ui) {\n\t\tvar t = $(ui.helper), o = $(this).data(\"ui-draggable\").options;\n\t\tif(t.css(\"opacity\")) {\n\t\t\to._opacity = t.css(\"opacity\");\n\t\t}\n\t\tt.css(\"opacity\", o.opacity);\n\t},\n\tstop: function(event, ui) {\n\t\tvar o = $(this).data(\"ui-draggable\").options;\n\t\tif(o._opacity) {\n\t\t\t$(ui.helper).css(\"opacity\", o._opacity);\n\t\t}\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"scroll\", {\n\tstart: function() {\n\t\tvar i = $(this).data(\"ui-draggable\");\n\t\tif(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== \"HTML\") {\n\t\t\ti.overflowOffset = i.scrollParent.offset();\n\t\t}\n\t},\n\tdrag: function( event ) {\n\n\t\tvar i = $(this).data(\"ui-draggable\"), o = i.options, scrolled = false;\n\n\t\tif(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== \"HTML\") {\n\n\t\t\tif(!o.axis || o.axis !== \"x\") {\n\t\t\t\tif((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {\n\t\t\t\t\ti.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;\n\t\t\t\t} else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) {\n\t\t\t\t\ti.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!o.axis || o.axis !== \"y\") {\n\t\t\t\tif((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {\n\t\t\t\t\ti.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) {\n\t\t\t\t\ti.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif(!o.axis || o.axis !== \"x\") {\n\t\t\t\tif(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\n\t\t\t\t} else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!o.axis || o.axis !== \"y\") {\n\t\t\t\tif(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\n\t\t\t\t} else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(i, event);\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"snap\", {\n\tstart: function() {\n\n\t\tvar i = $(this).data(\"ui-draggable\"),\n\t\t\to = i.options;\n\n\t\ti.snapElements = [];\n\n\t\t$(o.snap.constructor !== String ? ( o.snap.items || \":data(ui-draggable)\" ) : o.snap).each(function() {\n\t\t\tvar $t = $(this),\n\t\t\t\t$o = $t.offset();\n\t\t\tif(this !== i.element[0]) {\n\t\t\t\ti.snapElements.push({\n\t\t\t\t\titem: this,\n\t\t\t\t\twidth: $t.outerWidth(), height: $t.outerHeight(),\n\t\t\t\t\ttop: $o.top, left: $o.left\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t},\n\tdrag: function(event, ui) {\n\n\t\tvar ts, bs, ls, rs, l, r, t, b, i, first,\n\t\t\tinst = $(this).data(\"ui-draggable\"),\n\t\t\to = inst.options,\n\t\t\td = o.snapTolerance,\n\t\t\tx1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,\n\t\t\ty1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;\n\n\t\tfor (i = inst.snapElements.length - 1; i >= 0; i--){\n\n\t\t\tl = inst.snapElements[i].left;\n\t\t\tr = l + inst.snapElements[i].width;\n\t\t\tt = inst.snapElements[i].top;\n\t\t\tb = t + inst.snapElements[i].height;\n\n\t\t\tif ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) {\n\t\t\t\tif(inst.snapElements[i].snapping) {\n\t\t\t\t\t(inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t\t}\n\t\t\t\tinst.snapElements[i].snapping = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif(o.snapMode !== \"inner\") {\n\t\t\t\tts = Math.abs(t - y2) <= d;\n\t\t\t\tbs = Math.abs(b - y1) <= d;\n\t\t\t\tls = Math.abs(l - x2) <= d;\n\t\t\t\trs = Math.abs(r - x1) <= d;\n\t\t\t\tif(ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;\n\t\t\t\t}\n\t\t\t\tif(bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b, left: 0 }).top - inst.margins.top;\n\t\t\t\t}\n\t\t\t\tif(ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;\n\t\t\t\t}\n\t\t\t\tif(rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r }).left - inst.margins.left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfirst = (ts || bs || ls || rs);\n\n\t\t\tif(o.snapMode !== \"outer\") {\n\t\t\t\tts = Math.abs(t - y1) <= d;\n\t\t\t\tbs = Math.abs(b - y2) <= d;\n\t\t\t\tls = Math.abs(l - x1) <= d;\n\t\t\t\trs = Math.abs(r - x2) <= d;\n\t\t\t\tif(ts) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: t, left: 0 }).top - inst.margins.top;\n\t\t\t\t}\n\t\t\t\tif(bs) {\n\t\t\t\t\tui.position.top = inst._convertPositionTo(\"relative\", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;\n\t\t\t\t}\n\t\t\t\tif(ls) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: l }).left - inst.margins.left;\n\t\t\t\t}\n\t\t\t\tif(rs) {\n\t\t\t\t\tui.position.left = inst._convertPositionTo(\"relative\", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) {\n\t\t\t\t(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));\n\t\t\t}\n\t\t\tinst.snapElements[i].snapping = (ts || bs || ls || rs || first);\n\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"stack\", {\n\tstart: function() {\n\t\tvar min,\n\t\t\to = this.data(\"ui-draggable\").options,\n\t\t\tgroup = $.makeArray($(o.stack)).sort(function(a,b) {\n\t\t\t\treturn (parseInt($(a).css(\"zIndex\"),10) || 0) - (parseInt($(b).css(\"zIndex\"),10) || 0);\n\t\t\t});\n\n\t\tif (!group.length) { return; }\n\n\t\tmin = parseInt($(group[0]).css(\"zIndex\"), 10) || 0;\n\t\t$(group).each(function(i) {\n\t\t\t$(this).css(\"zIndex\", min + i);\n\t\t});\n\t\tthis.css(\"zIndex\", (min + group.length));\n\t}\n});\n\n$.ui.plugin.add(\"draggable\", \"zIndex\", {\n\tstart: function(event, ui) {\n\t\tvar t = $(ui.helper), o = $(this).data(\"ui-draggable\").options;\n\t\tif(t.css(\"zIndex\")) {\n\t\t\to._zIndex = t.css(\"zIndex\");\n\t\t}\n\t\tt.css(\"zIndex\", o.zIndex);\n\t},\n\tstop: function(event, ui) {\n\t\tvar o = $(this).data(\"ui-draggable\").options;\n\t\tif(o._zIndex) {\n\t\t\t$(ui.helper).css(\"zIndex\", o._zIndex);\n\t\t}\n\t}\n});\n\n})(jQuery);\n\n(function( $, undefined ) {\n\nfunction isOverAxis( x, reference, size ) {\n\treturn ( x > reference ) && ( x < ( reference + size ) );\n}\n\n$.widget(\"ui.droppable\", {\n\tversion: \"1.10.3\",\n\twidgetEventPrefix: \"drop\",\n\toptions: {\n\t\taccept: \"*\",\n\t\tactiveClass: false,\n\t\taddClasses: true,\n\t\tgreedy: false,\n\t\thoverClass: false,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tdeactivate: null,\n\t\tdrop: null,\n\t\tout: null,\n\t\tover: null\n\t},\n\t_create: function() {\n\n\t\tvar o = this.options,\n\t\t\taccept = o.accept;\n\n\t\tthis.isover = false;\n\t\tthis.isout = true;\n\n\t\tthis.accept = $.isFunction(accept) ? accept : function(d) {\n\t\t\treturn d.is(accept);\n\t\t};\n\n\t\t//Store the droppable's proportions\n\t\tthis.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };\n\n\t\t// Add the reference and positions to the manager\n\t\t$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];\n\t\t$.ui.ddmanager.droppables[o.scope].push(this);\n\n\t\t(o.addClasses && this.element.addClass(\"ui-droppable\"));\n\n\t},\n\n\t_destroy: function() {\n\t\tvar i = 0,\n\t\t\tdrop = $.ui.ddmanager.droppables[this.options.scope];\n\n\t\tfor ( ; i < drop.length; i++ ) {\n\t\t\tif ( drop[i] === this ) {\n\t\t\t\tdrop.splice(i, 1);\n\t\t\t}\n\t\t}\n\n\t\tthis.element.removeClass(\"ui-droppable ui-droppable-disabled\");\n\t},\n\n\t_setOption: function(key, value) {\n\n\t\tif(key === \"accept\") {\n\t\t\tthis.accept = $.isFunction(value) ? value : function(d) {\n\t\t\t\treturn d.is(value);\n\t\t\t};\n\t\t}\n\t\t$.Widget.prototype._setOption.apply(this, arguments);\n\t},\n\n\t_activate: function(event) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\t\tif(this.options.activeClass) {\n\t\t\tthis.element.addClass(this.options.activeClass);\n\t\t}\n\t\tif(draggable){\n\t\t\tthis._trigger(\"activate\", event, this.ui(draggable));\n\t\t}\n\t},\n\n\t_deactivate: function(event) {\n\t\tvar draggable = $.ui.ddmanager.current;\n\t\tif(this.options.activeClass) {\n\t\t\tthis.element.removeClass(this.options.activeClass);\n\t\t}\n\t\tif(draggable){\n\t\t\tthis._trigger(\"deactivate\", event, this.ui(draggable));\n\t\t}\n\t},\n\n\t_over: function(event) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\n\t\t\tif(this.options.hoverClass) {\n\t\t\t\tthis.element.addClass(this.options.hoverClass);\n\t\t\t}\n\t\t\tthis._trigger(\"over\", event, this.ui(draggable));\n\t\t}\n\n\t},\n\n\t_out: function(event) {\n\n\t\tvar draggable = $.ui.ddmanager.current;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\n\t\t\tif(this.options.hoverClass) {\n\t\t\t\tthis.element.removeClass(this.options.hoverClass);\n\t\t\t}\n\t\t\tthis._trigger(\"out\", event, this.ui(draggable));\n\t\t}\n\n\t},\n\n\t_drop: function(event,custom) {\n\n\t\tvar draggable = custom || $.ui.ddmanager.current,\n\t\t\tchildrenIntersection = false;\n\n\t\t// Bail if draggable and droppable are same element\n\t\tif (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.element.find(\":data(ui-droppable)\").not(\".ui-draggable-dragging\").each(function() {\n\t\t\tvar inst = $.data(this, \"ui-droppable\");\n\t\t\tif(\n\t\t\t\tinst.options.greedy &&\n\t\t\t\t!inst.options.disabled &&\n\t\t\t\tinst.options.scope === draggable.options.scope &&\n\t\t\t\tinst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) &&\n\t\t\t\t$.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)\n\t\t\t) { childrenIntersection = true; return false; }\n\t\t});\n\t\tif(childrenIntersection) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\n\t\t\tif(this.options.activeClass) {\n\t\t\t\tthis.element.removeClass(this.options.activeClass);\n\t\t\t}\n\t\t\tif(this.options.hoverClass) {\n\t\t\t\tthis.element.removeClass(this.options.hoverClass);\n\t\t\t}\n\t\t\tthis._trigger(\"drop\", event, this.ui(draggable));\n\t\t\treturn this.element;\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tui: function(c) {\n\t\treturn {\n\t\t\tdraggable: (c.currentItem || c.element),\n\t\t\thelper: c.helper,\n\t\t\tposition: c.position,\n\t\t\toffset: c.positionAbs\n\t\t};\n\t}\n\n});\n\n$.ui.intersect = function(draggable, droppable, toleranceMode) {\n\n\tif (!droppable.offset) {\n\t\treturn false;\n\t}\n\n\tvar draggableLeft, draggableTop,\n\t\tx1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,\n\t\ty1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height,\n\t\tl = droppable.offset.left, r = l + droppable.proportions.width,\n\t\tt = droppable.offset.top, b = t + droppable.proportions.height;\n\n\tswitch (toleranceMode) {\n\t\tcase \"fit\":\n\t\t\treturn (l <= x1 && x2 <= r && t <= y1 && y2 <= b);\n\t\tcase \"intersect\":\n\t\t\treturn (l < x1 + (draggable.helperProportions.width / 2) && // Right Half\n\t\t\t\tx2 - (draggable.helperProportions.width / 2) < r && // Left Half\n\t\t\t\tt < y1 + (draggable.helperProportions.height / 2) && // Bottom Half\n\t\t\t\ty2 - (draggable.helperProportions.height / 2) < b ); // Top Half\n\t\tcase \"pointer\":\n\t\t\tdraggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left);\n\t\t\tdraggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top);\n\t\t\treturn isOverAxis( draggableTop, t, droppable.proportions.height ) && isOverAxis( draggableLeft, l, droppable.proportions.width );\n\t\tcase \"touch\":\n\t\t\treturn (\n\t\t\t\t(y1 >= t && y1 <= b) ||\t// Top edge touching\n\t\t\t\t(y2 >= t && y2 <= b) ||\t// Bottom edge touching\n\t\t\t\t(y1 < t && y2 > b)\t\t// Surrounded vertically\n\t\t\t) && (\n\t\t\t\t(x1 >= l && x1 <= r) ||\t// Left edge touching\n\t\t\t\t(x2 >= l && x2 <= r) ||\t// Right edge touching\n\t\t\t\t(x1 < l && x2 > r)\t\t// Surrounded horizontally\n\t\t\t);\n\t\tdefault:\n\t\t\treturn false;\n\t\t}\n\n};\n\n/*\n\tThis manager tracks offsets of draggables and droppables\n*/\n$.ui.ddmanager = {\n\tcurrent: null,\n\tdroppables: { \"default\": [] },\n\tprepareOffsets: function(t, event) {\n\n\t\tvar i, j,\n\t\t\tm = $.ui.ddmanager.droppables[t.options.scope] || [],\n\t\t\ttype = event ? event.type : null, // workaround for #2317\n\t\t\tlist = (t.currentItem || t.element).find(\":data(ui-droppable)\").addBack();\n\n\t\tdroppablesLoop: for (i = 0; i < m.length; i++) {\n\n\t\t\t//No disabled and non-accepted\n\t\t\tif(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Filter out elements in the current dragged item\n\t\t\tfor (j=0; j < list.length; j++) {\n\t\t\t\tif(list[j] === m[i].element[0]) {\n\t\t\t\t\tm[i].proportions.height = 0;\n\t\t\t\t\tcontinue droppablesLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm[i].visible = m[i].element.css(\"display\") !== \"none\";\n\t\t\tif(!m[i].visible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t//Activate the droppable if used directly from draggables\n\t\t\tif(type === \"mousedown\") {\n\t\t\t\tm[i]._activate.call(m[i], event);\n\t\t\t}\n\n\t\t\tm[i].offset = m[i].element.offset();\n\t\t\tm[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };\n\n\t\t}\n\n\t},\n\tdrop: function(draggable, event) {\n\n\t\tvar dropped = false;\n\t\t// Create a copy of the droppables in case the list changes during the drop (#9116)\n\t\t$.each(($.ui.ddmanager.droppables[draggable.options.scope] || []).slice(), function() {\n\n\t\t\tif(!this.options) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) {\n\t\t\t\tdropped = this._drop.call(this, event) || dropped;\n\t\t\t}\n\n\t\t\tif (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {\n\t\t\t\tthis.isout = true;\n\t\t\t\tthis.isover = false;\n\t\t\t\tthis._deactivate.call(this, event);\n\t\t\t}\n\n\t\t});\n\t\treturn dropped;\n\n\t},\n\tdragStart: function( draggable, event ) {\n\t\t//Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003)\n\t\tdraggable.element.parentsUntil( \"body\" ).bind( \"scroll.droppable\", function() {\n\t\t\tif( !draggable.options.refreshPositions ) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t\t}\n\t\t});\n\t},\n\tdrag: function(draggable, event) {\n\n\t\t//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.\n\t\tif(draggable.options.refreshPositions) {\n\t\t\t$.ui.ddmanager.prepareOffsets(draggable, event);\n\t\t}\n\n\t\t//Run through all droppables and check their positions based on specific tolerance options\n\t\t$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {\n\n\t\t\tif(this.options.disabled || this.greedyChild || !this.visible) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar parentInstance, scope, parent,\n\t\t\t\tintersects = $.ui.intersect(draggable, this, this.options.tolerance),\n\t\t\t\tc = !intersects && this.isover ? \"isout\" : (intersects && !this.isover ? \"isover\" : null);\n\t\t\tif(!c) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.options.greedy) {\n\t\t\t\t// find droppable parents with same scope\n\t\t\t\tscope = this.options.scope;\n\t\t\t\tparent = this.element.parents(\":data(ui-droppable)\").filter(function () {\n\t\t\t\t\treturn $.data(this, \"ui-droppable\").options.scope === scope;\n\t\t\t\t});\n\n\t\t\t\tif (parent.length) {\n\t\t\t\t\tparentInstance = $.data(parent[0], \"ui-droppable\");\n\t\t\t\t\tparentInstance.greedyChild = (c === \"isover\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// we just moved into a greedy child\n\t\t\tif (parentInstance && c === \"isover\") {\n\t\t\t\tparentInstance.isover = false;\n\t\t\t\tparentInstance.isout = true;\n\t\t\t\tparentInstance._out.call(parentInstance, event);\n\t\t\t}\n\n\t\t\tthis[c] = true;\n\t\t\tthis[c === \"isout\" ? \"isover\" : \"isout\"] = false;\n\t\t\tthis[c === \"isover\" ? \"_over\" : \"_out\"].call(this, event);\n\n\t\t\t// we just moved out of a greedy child\n\t\t\tif (parentInstance && c === \"isout\") {\n\t\t\t\tparentInstance.isout = false;\n\t\t\t\tparentInstance.isover = true;\n\t\t\t\tparentInstance._over.call(parentInstance, event);\n\t\t\t}\n\t\t});\n\n\t},\n\tdragStop: function( draggable, event ) {\n\t\tdraggable.element.parentsUntil( \"body\" ).unbind( \"scroll.droppable\" );\n\t\t//Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003)\n\t\tif( !draggable.options.refreshPositions ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( draggable, event );\n\t\t}\n\t}\n};\n\n})(jQuery);\n\n(function( $, undefined ) {\n\nfunction num(v) {\n\treturn parseInt(v, 10) || 0;\n}\n\nfunction isNumber(value) {\n\treturn !isNaN(parseInt(value, 10));\n}\n\n$.widget(\"ui.resizable\", $.ui.mouse, {\n\tversion: \"1.10.3\",\n\twidgetEventPrefix: \"resize\",\n\toptions: {\n\t\talsoResize: false,\n\t\tanimate: false,\n\t\tanimateDuration: \"slow\",\n\t\tanimateEasing: \"swing\",\n\t\taspectRatio: false,\n\t\tautoHide: false,\n\t\tcontainment: false,\n\t\tghost: false,\n\t\tgrid: false,\n\t\thandles: \"e,s,se\",\n\t\thelper: false,\n\t\tmaxHeight: null,\n\t\tmaxWidth: null,\n\t\tminHeight: 10,\n\t\tminWidth: 10,\n\t\t// See #7960\n\t\tzIndex: 90,\n\n\t\t// callbacks\n\t\tresize: null,\n\t\tstart: null,\n\t\tstop: null\n\t},\n\t_create: function() {\n\n\t\tvar n, i, handle, axis, hname,\n\t\t\tthat = this,\n\t\t\to = this.options;\n\t\tthis.element.addClass(\"ui-resizable\");\n\n\t\t$.extend(this, {\n\t\t\t_aspectRatio: !!(o.aspectRatio),\n\t\t\taspectRatio: o.aspectRatio,\n\t\t\toriginalElement: this.element,\n\t\t\t_proportionallyResizeElements: [],\n\t\t\t_helper: o.helper || o.ghost || o.animate ? o.helper || \"ui-resizable-helper\" : null\n\t\t});\n\n\t\t//Wrap the element if it cannot hold child nodes\n\t\tif(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {\n\n\t\t\t//Create a wrapper element and set the wrapper to the new current internal element\n\t\t\tthis.element.wrap(\n\t\t\t\t$(\"
\").css({\n\t\t\t\t\tposition: this.element.css(\"position\"),\n\t\t\t\t\twidth: this.element.outerWidth(),\n\t\t\t\t\theight: this.element.outerHeight(),\n\t\t\t\t\ttop: this.element.css(\"top\"),\n\t\t\t\t\tleft: this.element.css(\"left\")\n\t\t\t\t})\n\t\t\t);\n\n\t\t\t//Overwrite the original this.element\n\t\t\tthis.element = this.element.parent().data(\n\t\t\t\t\"ui-resizable\", this.element.data(\"ui-resizable\")\n\t\t\t);\n\n\t\t\tthis.elementIsWrapper = true;\n\n\t\t\t//Move margins to the wrapper\n\t\t\tthis.element.css({ marginLeft: this.originalElement.css(\"marginLeft\"), marginTop: this.originalElement.css(\"marginTop\"), marginRight: this.originalElement.css(\"marginRight\"), marginBottom: this.originalElement.css(\"marginBottom\") });\n\t\t\tthis.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});\n\n\t\t\t//Prevent Safari textarea resize\n\t\t\tthis.originalResizeStyle = this.originalElement.css(\"resize\");\n\t\t\tthis.originalElement.css(\"resize\", \"none\");\n\n\t\t\t//Push the actual element to our proportionallyResize internal array\n\t\t\tthis._proportionallyResizeElements.push(this.originalElement.css({ position: \"static\", zoom: 1, display: \"block\" }));\n\n\t\t\t// avoid IE jump (hard set the margin)\n\t\t\tthis.originalElement.css({ margin: this.originalElement.css(\"margin\") });\n\n\t\t\t// fix handlers offset\n\t\t\tthis._proportionallyResize();\n\n\t\t}\n\n\t\tthis.handles = o.handles || (!$(\".ui-resizable-handle\", this.element).length ? \"e,s,se\" : { n: \".ui-resizable-n\", e: \".ui-resizable-e\", s: \".ui-resizable-s\", w: \".ui-resizable-w\", se: \".ui-resizable-se\", sw: \".ui-resizable-sw\", ne: \".ui-resizable-ne\", nw: \".ui-resizable-nw\" });\n\t\tif(this.handles.constructor === String) {\n\n\t\t\tif ( this.handles === \"all\") {\n\t\t\t\tthis.handles = \"n,e,s,w,se,sw,ne,nw\";\n\t\t\t}\n\n\t\t\tn = this.handles.split(\",\");\n\t\t\tthis.handles = {};\n\n\t\t\tfor(i = 0; i < n.length; i++) {\n\n\t\t\t\thandle = $.trim(n[i]);\n\t\t\t\thname = \"ui-resizable-\"+handle;\n\t\t\t\taxis = $(\"
\");\n\n\t\t\t\t// Apply zIndex to all handles - see #7960\n\t\t\t\taxis.css({ zIndex: o.zIndex });\n\n\t\t\t\t//TODO : What's going on here?\n\t\t\t\tif (\"se\" === handle) {\n\t\t\t\t\taxis.addClass(\"ui-icon ui-icon-gripsmall-diagonal-se\");\n\t\t\t\t}\n\n\t\t\t\t//Insert into internal handles object and append to element\n\t\t\t\tthis.handles[handle] = \".ui-resizable-\"+handle;\n\t\t\t\tthis.element.append(axis);\n\t\t\t}\n\n\t\t}\n\n\t\tthis._renderAxis = function(target) {\n\n\t\t\tvar i, axis, padPos, padWrapper;\n\n\t\t\ttarget = target || this.element;\n\n\t\t\tfor(i in this.handles) {\n\n\t\t\t\tif(this.handles[i].constructor === String) {\n\t\t\t\t\tthis.handles[i] = $(this.handles[i], this.element).show();\n\t\t\t\t}\n\n\t\t\t\t//Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)\n\t\t\t\tif (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {\n\n\t\t\t\t\taxis = $(this.handles[i], this.element);\n\n\t\t\t\t\t//Checking the correct pad and border\n\t\t\t\t\tpadWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();\n\n\t\t\t\t\t//The padding type i have to apply...\n\t\t\t\t\tpadPos = [ \"padding\",\n\t\t\t\t\t\t/ne|nw|n/.test(i) ? \"Top\" :\n\t\t\t\t\t\t/se|sw|s/.test(i) ? \"Bottom\" :\n\t\t\t\t\t\t/^e$/.test(i) ? \"Right\" : \"Left\" ].join(\"\");\n\n\t\t\t\t\ttarget.css(padPos, padWrapper);\n\n\t\t\t\t\tthis._proportionallyResize();\n\n\t\t\t\t}\n\n\t\t\t\t//TODO: What's that good for? There's not anything to be executed left\n\t\t\t\tif(!$(this.handles[i]).length) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t//TODO: make renderAxis a prototype function\n\t\tthis._renderAxis(this.element);\n\n\t\tthis._handles = $(\".ui-resizable-handle\", this.element)\n\t\t\t.disableSelection();\n\n\t\t//Matching axis name\n\t\tthis._handles.mouseover(function() {\n\t\t\tif (!that.resizing) {\n\t\t\t\tif (this.className) {\n\t\t\t\t\taxis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);\n\t\t\t\t}\n\t\t\t\t//Axis, default = se\n\t\t\t\tthat.axis = axis && axis[1] ? axis[1] : \"se\";\n\t\t\t}\n\t\t});\n\n\t\t//If we want to auto hide the elements\n\t\tif (o.autoHide) {\n\t\t\tthis._handles.hide();\n\t\t\t$(this.element)\n\t\t\t\t.addClass(\"ui-resizable-autohide\")\n\t\t\t\t.mouseenter(function() {\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t$(this).removeClass(\"ui-resizable-autohide\");\n\t\t\t\t\tthat._handles.show();\n\t\t\t\t})\n\t\t\t\t.mouseleave(function(){\n\t\t\t\t\tif (o.disabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (!that.resizing) {\n\t\t\t\t\t\t$(this).addClass(\"ui-resizable-autohide\");\n\t\t\t\t\t\tthat._handles.hide();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\t//Initialize the mouse interaction\n\t\tthis._mouseInit();\n\n\t},\n\n\t_destroy: function() {\n\n\t\tthis._mouseDestroy();\n\n\t\tvar wrapper,\n\t\t\t_destroy = function(exp) {\n\t\t\t\t$(exp).removeClass(\"ui-resizable ui-resizable-disabled ui-resizable-resizing\")\n\t\t\t\t\t.removeData(\"resizable\").removeData(\"ui-resizable\").unbind(\".resizable\").find(\".ui-resizable-handle\").remove();\n\t\t\t};\n\n\t\t//TODO: Unwrap at same DOM position\n\t\tif (this.elementIsWrapper) {\n\t\t\t_destroy(this.element);\n\t\t\twrapper = this.element;\n\t\t\tthis.originalElement.css({\n\t\t\t\tposition: wrapper.css(\"position\"),\n\t\t\t\twidth: wrapper.outerWidth(),\n\t\t\t\theight: wrapper.outerHeight(),\n\t\t\t\ttop: wrapper.css(\"top\"),\n\t\t\t\tleft: wrapper.css(\"left\")\n\t\t\t}).insertAfter( wrapper );\n\t\t\twrapper.remove();\n\t\t}\n\n\t\tthis.originalElement.css(\"resize\", this.originalResizeStyle);\n\t\t_destroy(this.originalElement);\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function(event) {\n\t\tvar i, handle,\n\t\t\tcapture = false;\n\n\t\tfor (i in this.handles) {\n\t\t\thandle = $(this.handles[i])[0];\n\t\t\tif (handle === event.target || $.contains(handle, event.target)) {\n\t\t\t\tcapture = true;\n\t\t\t}\n\t\t}\n\n\t\treturn !this.options.disabled && capture;\n\t},\n\n\t_mouseStart: function(event) {\n\n\t\tvar curleft, curtop, cursor,\n\t\t\to = this.options,\n\t\t\tiniPos = this.element.position(),\n\t\t\tel = this.element;\n\n\t\tthis.resizing = true;\n\n\t\t// bugfix for http://dev.jquery.com/ticket/1749\n\t\tif ( (/absolute/).test( el.css(\"position\") ) ) {\n\t\t\tel.css({ position: \"absolute\", top: el.css(\"top\"), left: el.css(\"left\") });\n\t\t} else if (el.is(\".ui-draggable\")) {\n\t\t\tel.css({ position: \"absolute\", top: iniPos.top, left: iniPos.left });\n\t\t}\n\n\t\tthis._renderProxy();\n\n\t\tcurleft = num(this.helper.css(\"left\"));\n\t\tcurtop = num(this.helper.css(\"top\"));\n\n\t\tif (o.containment) {\n\t\t\tcurleft += $(o.containment).scrollLeft() || 0;\n\t\t\tcurtop += $(o.containment).scrollTop() || 0;\n\t\t}\n\n\t\t//Store needed variables\n\t\tthis.offset = this.helper.offset();\n\t\tthis.position = { left: curleft, top: curtop };\n\t\tthis.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };\n\t\tthis.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };\n\t\tthis.originalPosition = { left: curleft, top: curtop };\n\t\tthis.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };\n\t\tthis.originalMousePosition = { left: event.pageX, top: event.pageY };\n\n\t\t//Aspect Ratio\n\t\tthis.aspectRatio = (typeof o.aspectRatio === \"number\") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);\n\n\t\tcursor = $(\".ui-resizable-\" + this.axis).css(\"cursor\");\n\t\t$(\"body\").css(\"cursor\", cursor === \"auto\" ? this.axis + \"-resize\" : cursor);\n\n\t\tel.addClass(\"ui-resizable-resizing\");\n\t\tthis._propagate(\"start\", event);\n\t\treturn true;\n\t},\n\n\t_mouseDrag: function(event) {\n\n\t\t//Increase performance, avoid regex\n\t\tvar data,\n\t\t\tel = this.helper, props = {},\n\t\t\tsmp = this.originalMousePosition,\n\t\t\ta = this.axis,\n\t\t\tprevTop = this.position.top,\n\t\t\tprevLeft = this.position.left,\n\t\t\tprevWidth = this.size.width,\n\t\t\tprevHeight = this.size.height,\n\t\t\tdx = (event.pageX-smp.left)||0,\n\t\t\tdy = (event.pageY-smp.top)||0,\n\t\t\ttrigger = this._change[a];\n\n\t\tif (!trigger) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Calculate the attrs that will be change\n\t\tdata = trigger.apply(this, [event, dx, dy]);\n\n\t\t// Put this in the mouseDrag handler since the user can start pressing shift while resizing\n\t\tthis._updateVirtualBoundaries(event.shiftKey);\n\t\tif (this._aspectRatio || event.shiftKey) {\n\t\t\tdata = this._updateRatio(data, event);\n\t\t}\n\n\t\tdata = this._respectSize(data, event);\n\n\t\tthis._updateCache(data);\n\n\t\t// plugins callbacks need to be called first\n\t\tthis._propagate(\"resize\", event);\n\n\t\tif (this.position.top !== prevTop) {\n\t\t\tprops.top = this.position.top + \"px\";\n\t\t}\n\t\tif (this.position.left !== prevLeft) {\n\t\t\tprops.left = this.position.left + \"px\";\n\t\t}\n\t\tif (this.size.width !== prevWidth) {\n\t\t\tprops.width = this.size.width + \"px\";\n\t\t}\n\t\tif (this.size.height !== prevHeight) {\n\t\t\tprops.height = this.size.height + \"px\";\n\t\t}\n\t\tel.css(props);\n\n\t\tif (!this._helper && this._proportionallyResizeElements.length) {\n\t\t\tthis._proportionallyResize();\n\t\t}\n\n\t\t// Call the user callback if the element was resized\n\t\tif ( ! $.isEmptyObject(props) ) {\n\t\t\tthis._trigger(\"resize\", event, this.ui());\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\n\t\tthis.resizing = false;\n\t\tvar pr, ista, soffseth, soffsetw, s, left, top,\n\t\t\to = this.options, that = this;\n\n\t\tif(this._helper) {\n\n\t\t\tpr = this._proportionallyResizeElements;\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName);\n\t\t\tsoffseth = ista && $.ui.hasScroll(pr[0], \"left\") /* TODO - jump height */ ? 0 : that.sizeDiff.height;\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width;\n\n\t\t\ts = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) };\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) + (that.position.left - that.originalPosition.left)) || null;\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) + (that.position.top - that.originalPosition.top)) || null;\n\n\t\t\tif (!o.animate) {\n\t\t\t\tthis.element.css($.extend(s, { top: top, left: left }));\n\t\t\t}\n\n\t\t\tthat.helper.height(that.size.height);\n\t\t\tthat.helper.width(that.size.width);\n\n\t\t\tif (this._helper && !o.animate) {\n\t\t\t\tthis._proportionallyResize();\n\t\t\t}\n\t\t}\n\n\t\t$(\"body\").css(\"cursor\", \"auto\");\n\n\t\tthis.element.removeClass(\"ui-resizable-resizing\");\n\n\t\tthis._propagate(\"stop\", event);\n\n\t\tif (this._helper) {\n\t\t\tthis.helper.remove();\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\t_updateVirtualBoundaries: function(forceAspectRatio) {\n\t\tvar pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,\n\t\t\to = this.options;\n\n\t\tb = {\n\t\t\tminWidth: isNumber(o.minWidth) ? o.minWidth : 0,\n\t\t\tmaxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity,\n\t\t\tminHeight: isNumber(o.minHeight) ? o.minHeight : 0,\n\t\t\tmaxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity\n\t\t};\n\n\t\tif(this._aspectRatio || forceAspectRatio) {\n\t\t\t// We want to create an enclosing box whose aspect ration is the requested one\n\t\t\t// First, compute the \"projected\" size for each dimension based on the aspect ratio and other dimension\n\t\t\tpMinWidth = b.minHeight * this.aspectRatio;\n\t\t\tpMinHeight = b.minWidth / this.aspectRatio;\n\t\t\tpMaxWidth = b.maxHeight * this.aspectRatio;\n\t\t\tpMaxHeight = b.maxWidth / this.aspectRatio;\n\n\t\t\tif(pMinWidth > b.minWidth) {\n\t\t\t\tb.minWidth = pMinWidth;\n\t\t\t}\n\t\t\tif(pMinHeight > b.minHeight) {\n\t\t\t\tb.minHeight = pMinHeight;\n\t\t\t}\n\t\t\tif(pMaxWidth < b.maxWidth) {\n\t\t\t\tb.maxWidth = pMaxWidth;\n\t\t\t}\n\t\t\tif(pMaxHeight < b.maxHeight) {\n\t\t\t\tb.maxHeight = pMaxHeight;\n\t\t\t}\n\t\t}\n\t\tthis._vBoundaries = b;\n\t},\n\n\t_updateCache: function(data) {\n\t\tthis.offset = this.helper.offset();\n\t\tif (isNumber(data.left)) {\n\t\t\tthis.position.left = data.left;\n\t\t}\n\t\tif (isNumber(data.top)) {\n\t\t\tthis.position.top = data.top;\n\t\t}\n\t\tif (isNumber(data.height)) {\n\t\t\tthis.size.height = data.height;\n\t\t}\n\t\tif (isNumber(data.width)) {\n\t\t\tthis.size.width = data.width;\n\t\t}\n\t},\n\n\t_updateRatio: function( data ) {\n\n\t\tvar cpos = this.position,\n\t\t\tcsize = this.size,\n\t\t\ta = this.axis;\n\n\t\tif (isNumber(data.height)) {\n\t\t\tdata.width = (data.height * this.aspectRatio);\n\t\t} else if (isNumber(data.width)) {\n\t\t\tdata.height = (data.width / this.aspectRatio);\n\t\t}\n\n\t\tif (a === \"sw\") {\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t\tdata.top = null;\n\t\t}\n\t\tif (a === \"nw\") {\n\t\t\tdata.top = cpos.top + (csize.height - data.height);\n\t\t\tdata.left = cpos.left + (csize.width - data.width);\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_respectSize: function( data ) {\n\n\t\tvar o = this._vBoundaries,\n\t\t\ta = this.axis,\n\t\t\tismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),\n\t\t\tisminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height),\n\t\t\tdw = this.originalPosition.left + this.originalSize.width,\n\t\t\tdh = this.position.top + this.size.height,\n\t\t\tcw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);\n\t\tif (isminw) {\n\t\t\tdata.width = o.minWidth;\n\t\t}\n\t\tif (isminh) {\n\t\t\tdata.height = o.minHeight;\n\t\t}\n\t\tif (ismaxw) {\n\t\t\tdata.width = o.maxWidth;\n\t\t}\n\t\tif (ismaxh) {\n\t\t\tdata.height = o.maxHeight;\n\t\t}\n\n\t\tif (isminw && cw) {\n\t\t\tdata.left = dw - o.minWidth;\n\t\t}\n\t\tif (ismaxw && cw) {\n\t\t\tdata.left = dw - o.maxWidth;\n\t\t}\n\t\tif (isminh && ch) {\n\t\t\tdata.top = dh - o.minHeight;\n\t\t}\n\t\tif (ismaxh && ch) {\n\t\t\tdata.top = dh - o.maxHeight;\n\t\t}\n\n\t\t// fixing jump error on top/left - bug #2330\n\t\tif (!data.width && !data.height && !data.left && data.top) {\n\t\t\tdata.top = null;\n\t\t} else if (!data.width && !data.height && !data.top && data.left) {\n\t\t\tdata.left = null;\n\t\t}\n\n\t\treturn data;\n\t},\n\n\t_proportionallyResize: function() {\n\n\t\tif (!this._proportionallyResizeElements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar i, j, borders, paddings, prel,\n\t\t\telement = this.helper || this.element;\n\n\t\tfor ( i=0; i < this._proportionallyResizeElements.length; i++) {\n\n\t\t\tprel = this._proportionallyResizeElements[i];\n\n\t\t\tif (!this.borderDif) {\n\t\t\t\tthis.borderDif = [];\n\t\t\t\tborders = [prel.css(\"borderTopWidth\"), prel.css(\"borderRightWidth\"), prel.css(\"borderBottomWidth\"), prel.css(\"borderLeftWidth\")];\n\t\t\t\tpaddings = [prel.css(\"paddingTop\"), prel.css(\"paddingRight\"), prel.css(\"paddingBottom\"), prel.css(\"paddingLeft\")];\n\n\t\t\t\tfor ( j = 0; j < borders.length; j++ ) {\n\t\t\t\t\tthis.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tprel.css({\n\t\t\t\theight: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,\n\t\t\t\twidth: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0\n\t\t\t});\n\n\t\t}\n\n\t},\n\n\t_renderProxy: function() {\n\n\t\tvar el = this.element, o = this.options;\n\t\tthis.elementOffset = el.offset();\n\n\t\tif(this._helper) {\n\n\t\t\tthis.helper = this.helper || $(\"
\");\n\n\t\t\tthis.helper.addClass(this._helper).css({\n\t\t\t\twidth: this.element.outerWidth() - 1,\n\t\t\t\theight: this.element.outerHeight() - 1,\n\t\t\t\tposition: \"absolute\",\n\t\t\t\tleft: this.elementOffset.left +\"px\",\n\t\t\t\ttop: this.elementOffset.top +\"px\",\n\t\t\t\tzIndex: ++o.zIndex //TODO: Don't modify option\n\t\t\t});\n\n\t\t\tthis.helper\n\t\t\t\t.appendTo(\"body\")\n\t\t\t\t.disableSelection();\n\n\t\t} else {\n\t\t\tthis.helper = this.element;\n\t\t}\n\n\t},\n\n\t_change: {\n\t\te: function(event, dx) {\n\t\t\treturn { width: this.originalSize.width + dx };\n\t\t},\n\t\tw: function(event, dx) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { left: sp.left + dx, width: cs.width - dx };\n\t\t},\n\t\tn: function(event, dx, dy) {\n\t\t\tvar cs = this.originalSize, sp = this.originalPosition;\n\t\t\treturn { top: sp.top + dy, height: cs.height - dy };\n\t\t},\n\t\ts: function(event, dx, dy) {\n\t\t\treturn { height: this.originalSize.height + dy };\n\t\t},\n\t\tse: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));\n\t\t},\n\t\tsw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));\n\t\t},\n\t\tne: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));\n\t\t},\n\t\tnw: function(event, dx, dy) {\n\t\t\treturn $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));\n\t\t}\n\t},\n\n\t_propagate: function(n, event) {\n\t\t$.ui.plugin.call(this, n, [event, this.ui()]);\n\t\t(n !== \"resize\" && this._trigger(n, event, this.ui()));\n\t},\n\n\tplugins: {},\n\n\tui: function() {\n\t\treturn {\n\t\t\toriginalElement: this.originalElement,\n\t\t\telement: this.element,\n\t\t\thelper: this.helper,\n\t\t\tposition: this.position,\n\t\t\tsize: this.size,\n\t\t\toriginalSize: this.originalSize,\n\t\t\toriginalPosition: this.originalPosition\n\t\t};\n\t}\n\n});\n\n/*\n * Resizable Extensions\n */\n\n$.ui.plugin.add(\"resizable\", \"animate\", {\n\n\tstop: function( event ) {\n\t\tvar that = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tpr = that._proportionallyResizeElements,\n\t\t\tista = pr.length && (/textarea/i).test(pr[0].nodeName),\n\t\t\tsoffseth = ista && $.ui.hasScroll(pr[0], \"left\") /* TODO - jump height */ ? 0 : that.sizeDiff.height,\n\t\t\tsoffsetw = ista ? 0 : that.sizeDiff.width,\n\t\t\tstyle = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) },\n\t\t\tleft = (parseInt(that.element.css(\"left\"), 10) + (that.position.left - that.originalPosition.left)) || null,\n\t\t\ttop = (parseInt(that.element.css(\"top\"), 10) + (that.position.top - that.originalPosition.top)) || null;\n\n\t\tthat.element.animate(\n\t\t\t$.extend(style, top && left ? { top: top, left: left } : {}), {\n\t\t\t\tduration: o.animateDuration,\n\t\t\t\teasing: o.animateEasing,\n\t\t\t\tstep: function() {\n\n\t\t\t\t\tvar data = {\n\t\t\t\t\t\twidth: parseInt(that.element.css(\"width\"), 10),\n\t\t\t\t\t\theight: parseInt(that.element.css(\"height\"), 10),\n\t\t\t\t\t\ttop: parseInt(that.element.css(\"top\"), 10),\n\t\t\t\t\t\tleft: parseInt(that.element.css(\"left\"), 10)\n\t\t\t\t\t};\n\n\t\t\t\t\tif (pr && pr.length) {\n\t\t\t\t\t\t$(pr[0]).css({ width: data.width, height: data.height });\n\t\t\t\t\t}\n\n\t\t\t\t\t// propagating resize, and updating values for each animation step\n\t\t\t\t\tthat._updateCache(data);\n\t\t\t\t\tthat._propagate(\"resize\", event);\n\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n});\n\n$.ui.plugin.add(\"resizable\", \"containment\", {\n\n\tstart: function() {\n\t\tvar element, p, co, ch, cw, width, height,\n\t\t\tthat = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tel = that.element,\n\t\t\toc = o.containment,\n\t\t\tce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;\n\n\t\tif (!ce) {\n\t\t\treturn;\n\t\t}\n\n\t\tthat.containerElement = $(ce);\n\n\t\tif (/document/.test(oc) || oc === document) {\n\t\t\tthat.containerOffset = { left: 0, top: 0 };\n\t\t\tthat.containerPosition = { left: 0, top: 0 };\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: $(document), left: 0, top: 0,\n\t\t\t\twidth: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight\n\t\t\t};\n\t\t}\n\n\t\t// i'm a node, so compute top, left, right, bottom\n\t\telse {\n\t\t\telement = $(ce);\n\t\t\tp = [];\n\t\t\t$([ \"Top\", \"Right\", \"Left\", \"Bottom\" ]).each(function(i, name) { p[i] = num(element.css(\"padding\" + name)); });\n\n\t\t\tthat.containerOffset = element.offset();\n\t\t\tthat.containerPosition = element.position();\n\t\t\tthat.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };\n\n\t\t\tco = that.containerOffset;\n\t\t\tch = that.containerSize.height;\n\t\t\tcw = that.containerSize.width;\n\t\t\twidth = ($.ui.hasScroll(ce, \"left\") ? ce.scrollWidth : cw );\n\t\t\theight = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);\n\n\t\t\tthat.parentData = {\n\t\t\t\telement: ce, left: co.left, top: co.top, width: width, height: height\n\t\t\t};\n\t\t}\n\t},\n\n\tresize: function( event ) {\n\t\tvar woset, hoset, isParent, isOffsetRelative,\n\t\t\tthat = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset, cp = that.position,\n\t\t\tpRatio = that._aspectRatio || event.shiftKey,\n\t\t\tcop = { top:0, left:0 }, ce = that.containerElement;\n\n\t\tif (ce[0] !== document && (/static/).test(ce.css(\"position\"))) {\n\t\t\tcop = co;\n\t\t}\n\n\t\tif (cp.left < (that._helper ? co.left : 0)) {\n\t\t\tthat.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left));\n\t\t\tif (pRatio) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t}\n\t\t\tthat.position.left = o.helper ? co.left : 0;\n\t\t}\n\n\t\tif (cp.top < (that._helper ? co.top : 0)) {\n\t\t\tthat.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top);\n\t\t\tif (pRatio) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t}\n\t\t\tthat.position.top = that._helper ? co.top : 0;\n\t\t}\n\n\t\tthat.offset.left = that.parentData.left+that.position.left;\n\t\tthat.offset.top = that.parentData.top+that.position.top;\n\n\t\twoset = Math.abs( (that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width );\n\t\thoset = Math.abs( (that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height );\n\n\t\tisParent = that.containerElement.get(0) === that.element.parent().get(0);\n\t\tisOffsetRelative = /relative|absolute/.test(that.containerElement.css(\"position\"));\n\n\t\tif(isParent && isOffsetRelative) {\n\t\t\twoset -= that.parentData.left;\n\t\t}\n\n\t\tif (woset + that.size.width >= that.parentData.width) {\n\t\t\tthat.size.width = that.parentData.width - woset;\n\t\t\tif (pRatio) {\n\t\t\t\tthat.size.height = that.size.width / that.aspectRatio;\n\t\t\t}\n\t\t}\n\n\t\tif (hoset + that.size.height >= that.parentData.height) {\n\t\t\tthat.size.height = that.parentData.height - hoset;\n\t\t\tif (pRatio) {\n\t\t\t\tthat.size.width = that.size.height * that.aspectRatio;\n\t\t\t}\n\t\t}\n\t},\n\n\tstop: function(){\n\t\tvar that = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tco = that.containerOffset,\n\t\t\tcop = that.containerPosition,\n\t\t\tce = that.containerElement,\n\t\t\thelper = $(that.helper),\n\t\t\tho = helper.offset(),\n\t\t\tw = helper.outerWidth() - that.sizeDiff.width,\n\t\t\th = helper.outerHeight() - that.sizeDiff.height;\n\n\t\tif (that._helper && !o.animate && (/relative/).test(ce.css(\"position\"))) {\n\t\t\t$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });\n\t\t}\n\n\t\tif (that._helper && !o.animate && (/static/).test(ce.css(\"position\"))) {\n\t\t\t$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });\n\t\t}\n\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"alsoResize\", {\n\n\tstart: function () {\n\t\tvar that = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\t_store = function (exp) {\n\t\t\t\t$(exp).each(function() {\n\t\t\t\t\tvar el = $(this);\n\t\t\t\t\tel.data(\"ui-resizable-alsoresize\", {\n\t\t\t\t\t\twidth: parseInt(el.width(), 10), height: parseInt(el.height(), 10),\n\t\t\t\t\t\tleft: parseInt(el.css(\"left\"), 10), top: parseInt(el.css(\"top\"), 10)\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\tif (typeof(o.alsoResize) === \"object\" && !o.alsoResize.parentNode) {\n\t\t\tif (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); }\n\t\t\telse { $.each(o.alsoResize, function (exp) { _store(exp); }); }\n\t\t}else{\n\t\t\t_store(o.alsoResize);\n\t\t}\n\t},\n\n\tresize: function (event, ui) {\n\t\tvar that = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\tdelta = {\n\t\t\t\theight: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0,\n\t\t\t\ttop: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0\n\t\t\t},\n\n\t\t\t_alsoResize = function (exp, c) {\n\t\t\t\t$(exp).each(function() {\n\t\t\t\t\tvar el = $(this), start = $(this).data(\"ui-resizable-alsoresize\"), style = {},\n\t\t\t\t\t\tcss = c && c.length ? c : el.parents(ui.originalElement[0]).length ? [\"width\", \"height\"] : [\"width\", \"height\", \"top\", \"left\"];\n\n\t\t\t\t\t$.each(css, function (i, prop) {\n\t\t\t\t\t\tvar sum = (start[prop]||0) + (delta[prop]||0);\n\t\t\t\t\t\tif (sum && sum >= 0) {\n\t\t\t\t\t\t\tstyle[prop] = sum || null;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tel.css(style);\n\t\t\t\t});\n\t\t\t};\n\n\t\tif (typeof(o.alsoResize) === \"object\" && !o.alsoResize.nodeType) {\n\t\t\t$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });\n\t\t}else{\n\t\t\t_alsoResize(o.alsoResize);\n\t\t}\n\t},\n\n\tstop: function () {\n\t\t$(this).removeData(\"resizable-alsoresize\");\n\t}\n});\n\n$.ui.plugin.add(\"resizable\", \"ghost\", {\n\n\tstart: function() {\n\n\t\tvar that = $(this).data(\"ui-resizable\"), o = that.options, cs = that.size;\n\n\t\tthat.ghost = that.originalElement.clone();\n\t\tthat.ghost\n\t\t\t.css({ opacity: 0.25, display: \"block\", position: \"relative\", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })\n\t\t\t.addClass(\"ui-resizable-ghost\")\n\t\t\t.addClass(typeof o.ghost === \"string\" ? o.ghost : \"\");\n\n\t\tthat.ghost.appendTo(that.helper);\n\n\t},\n\n\tresize: function(){\n\t\tvar that = $(this).data(\"ui-resizable\");\n\t\tif (that.ghost) {\n\t\t\tthat.ghost.css({ position: \"relative\", height: that.size.height, width: that.size.width });\n\t\t}\n\t},\n\n\tstop: function() {\n\t\tvar that = $(this).data(\"ui-resizable\");\n\t\tif (that.ghost && that.helper) {\n\t\t\tthat.helper.get(0).removeChild(that.ghost.get(0));\n\t\t}\n\t}\n\n});\n\n$.ui.plugin.add(\"resizable\", \"grid\", {\n\n\tresize: function() {\n\t\tvar that = $(this).data(\"ui-resizable\"),\n\t\t\to = that.options,\n\t\t\tcs = that.size,\n\t\t\tos = that.originalSize,\n\t\t\top = that.originalPosition,\n\t\t\ta = that.axis,\n\t\t\tgrid = typeof o.grid === \"number\" ? [o.grid, o.grid] : o.grid,\n\t\t\tgridX = (grid[0]||1),\n\t\t\tgridY = (grid[1]||1),\n\t\t\tox = Math.round((cs.width - os.width) / gridX) * gridX,\n\t\t\toy = Math.round((cs.height - os.height) / gridY) * gridY,\n\t\t\tnewWidth = os.width + ox,\n\t\t\tnewHeight = os.height + oy,\n\t\t\tisMaxWidth = o.maxWidth && (o.maxWidth < newWidth),\n\t\t\tisMaxHeight = o.maxHeight && (o.maxHeight < newHeight),\n\t\t\tisMinWidth = o.minWidth && (o.minWidth > newWidth),\n\t\t\tisMinHeight = o.minHeight && (o.minHeight > newHeight);\n\n\t\to.grid = grid;\n\n\t\tif (isMinWidth) {\n\t\t\tnewWidth = newWidth + gridX;\n\t\t}\n\t\tif (isMinHeight) {\n\t\t\tnewHeight = newHeight + gridY;\n\t\t}\n\t\tif (isMaxWidth) {\n\t\t\tnewWidth = newWidth - gridX;\n\t\t}\n\t\tif (isMaxHeight) {\n\t\t\tnewHeight = newHeight - gridY;\n\t\t}\n\n\t\tif (/^(se|s|e)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t} else if (/^(ne)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.top = op.top - oy;\n\t\t} else if (/^(sw)$/.test(a)) {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.left = op.left - ox;\n\t\t} else {\n\t\t\tthat.size.width = newWidth;\n\t\t\tthat.size.height = newHeight;\n\t\t\tthat.position.top = op.top - oy;\n\t\t\tthat.position.left = op.left - ox;\n\t\t}\n\t}\n\n});\n\n})(jQuery);\n\n(function( $, undefined ) {\n\n$.widget(\"ui.selectable\", $.ui.mouse, {\n\tversion: \"1.10.3\",\n\toptions: {\n\t\tappendTo: \"body\",\n\t\tautoRefresh: true,\n\t\tdistance: 0,\n\t\tfilter: \"*\",\n\t\ttolerance: \"touch\",\n\n\t\t// callbacks\n\t\tselected: null,\n\t\tselecting: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tunselected: null,\n\t\tunselecting: null\n\t},\n\t_create: function() {\n\t\tvar selectees,\n\t\t\tthat = this;\n\n\t\tthis.element.addClass(\"ui-selectable\");\n\n\t\tthis.dragged = false;\n\n\t\t// cache selectee children based on filter\n\t\tthis.refresh = function() {\n\t\t\tselectees = $(that.options.filter, that.element[0]);\n\t\t\tselectees.addClass(\"ui-selectee\");\n\t\t\tselectees.each(function() {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tpos = $this.offset();\n\t\t\t\t$.data(this, \"selectable-item\", {\n\t\t\t\t\telement: this,\n\t\t\t\t\t$element: $this,\n\t\t\t\t\tleft: pos.left,\n\t\t\t\t\ttop: pos.top,\n\t\t\t\t\tright: pos.left + $this.outerWidth(),\n\t\t\t\t\tbottom: pos.top + $this.outerHeight(),\n\t\t\t\t\tstartselected: false,\n\t\t\t\t\tselected: $this.hasClass(\"ui-selected\"),\n\t\t\t\t\tselecting: $this.hasClass(\"ui-selecting\"),\n\t\t\t\t\tunselecting: $this.hasClass(\"ui-unselecting\")\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\tthis.refresh();\n\n\t\tthis.selectees = selectees.addClass(\"ui-selectee\");\n\n\t\tthis._mouseInit();\n\n\t\tthis.helper = $(\"
\");\n\t},\n\n\t_destroy: function() {\n\t\tthis.selectees\n\t\t\t.removeClass(\"ui-selectee\")\n\t\t\t.removeData(\"selectable-item\");\n\t\tthis.element\n\t\t\t.removeClass(\"ui-selectable ui-selectable-disabled\");\n\t\tthis._mouseDestroy();\n\t},\n\n\t_mouseStart: function(event) {\n\t\tvar that = this,\n\t\t\toptions = this.options;\n\n\t\tthis.opos = [event.pageX, event.pageY];\n\n\t\tif (this.options.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectees = $(options.filter, this.element[0]);\n\n\t\tthis._trigger(\"start\", event);\n\n\t\t$(options.appendTo).append(this.helper);\n\t\t// position helper (lasso)\n\t\tthis.helper.css({\n\t\t\t\"left\": event.pageX,\n\t\t\t\"top\": event.pageY,\n\t\t\t\"width\": 0,\n\t\t\t\"height\": 0\n\t\t});\n\n\t\tif (options.autoRefresh) {\n\t\t\tthis.refresh();\n\t\t}\n\n\t\tthis.selectees.filter(\".ui-selected\").each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.startselected = true;\n\t\t\tif (!event.metaKey && !event.ctrlKey) {\n\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\tselectee.selected = false;\n\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\tselectee.unselecting = true;\n\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\t$(event.target).parents().addBack().each(function() {\n\t\t\tvar doSelect,\n\t\t\t\tselectee = $.data(this, \"selectable-item\");\n\t\t\tif (selectee) {\n\t\t\t\tdoSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass(\"ui-selected\");\n\t\t\t\tselectee.$element\n\t\t\t\t\t.removeClass(doSelect ? \"ui-unselecting\" : \"ui-selected\")\n\t\t\t\t\t.addClass(doSelect ? \"ui-selecting\" : \"ui-unselecting\");\n\t\t\t\tselectee.unselecting = !doSelect;\n\t\t\t\tselectee.selecting = doSelect;\n\t\t\t\tselectee.selected = doSelect;\n\t\t\t\t// selectable (UN)SELECTING callback\n\t\t\t\tif (doSelect) {\n\t\t\t\t\tthat._trigger(\"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t},\n\n\t_mouseDrag: function(event) {\n\n\t\tthis.dragged = true;\n\n\t\tif (this.options.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tmp,\n\t\t\tthat = this,\n\t\t\toptions = this.options,\n\t\t\tx1 = this.opos[0],\n\t\t\ty1 = this.opos[1],\n\t\t\tx2 = event.pageX,\n\t\t\ty2 = event.pageY;\n\n\t\tif (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }\n\t\tif (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }\n\t\tthis.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});\n\n\t\tthis.selectees.each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\"),\n\t\t\t\thit = false;\n\n\t\t\t//prevent helper from being selected if appendTo: selectable\n\t\t\tif (!selectee || selectee.element === that.element[0]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (options.tolerance === \"touch\") {\n\t\t\t\thit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );\n\t\t\t} else if (options.tolerance === \"fit\") {\n\t\t\t\thit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);\n\t\t\t}\n\n\t\t\tif (hit) {\n\t\t\t\t// SELECT\n\t\t\t\tif (selectee.selected) {\n\t\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\t\tselectee.selected = false;\n\t\t\t\t}\n\t\t\t\tif (selectee.unselecting) {\n\t\t\t\t\tselectee.$element.removeClass(\"ui-unselecting\");\n\t\t\t\t\tselectee.unselecting = false;\n\t\t\t\t}\n\t\t\t\tif (!selectee.selecting) {\n\t\t\t\t\tselectee.$element.addClass(\"ui-selecting\");\n\t\t\t\t\tselectee.selecting = true;\n\t\t\t\t\t// selectable SELECTING callback\n\t\t\t\t\tthat._trigger(\"selecting\", event, {\n\t\t\t\t\t\tselecting: selectee.element\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// UNSELECT\n\t\t\t\tif (selectee.selecting) {\n\t\t\t\t\tif ((event.metaKey || event.ctrlKey) && selectee.startselected) {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selecting\");\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tselectee.$element.addClass(\"ui-selected\");\n\t\t\t\t\t\tselectee.selected = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selecting\");\n\t\t\t\t\t\tselectee.selecting = false;\n\t\t\t\t\t\tif (selectee.startselected) {\n\t\t\t\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\t\t\t\tselectee.unselecting = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (selectee.selected) {\n\t\t\t\t\tif (!event.metaKey && !event.ctrlKey && !selectee.startselected) {\n\t\t\t\t\t\tselectee.$element.removeClass(\"ui-selected\");\n\t\t\t\t\t\tselectee.selected = false;\n\n\t\t\t\t\t\tselectee.$element.addClass(\"ui-unselecting\");\n\t\t\t\t\t\tselectee.unselecting = true;\n\t\t\t\t\t\t// selectable UNSELECTING callback\n\t\t\t\t\t\tthat._trigger(\"unselecting\", event, {\n\t\t\t\t\t\t\tunselecting: selectee.element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn false;\n\t},\n\n\t_mouseStop: function(event) {\n\t\tvar that = this;\n\n\t\tthis.dragged = false;\n\n\t\t$(\".ui-unselecting\", this.element[0]).each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.$element.removeClass(\"ui-unselecting\");\n\t\t\tselectee.unselecting = false;\n\t\t\tselectee.startselected = false;\n\t\t\tthat._trigger(\"unselected\", event, {\n\t\t\t\tunselected: selectee.element\n\t\t\t});\n\t\t});\n\t\t$(\".ui-selecting\", this.element[0]).each(function() {\n\t\t\tvar selectee = $.data(this, \"selectable-item\");\n\t\t\tselectee.$element.removeClass(\"ui-selecting\").addClass(\"ui-selected\");\n\t\t\tselectee.selecting = false;\n\t\t\tselectee.selected = true;\n\t\t\tselectee.startselected = true;\n\t\t\tthat._trigger(\"selected\", event, {\n\t\t\t\tselected: selectee.element\n\t\t\t});\n\t\t});\n\t\tthis._trigger(\"stop\", event);\n\n\t\tthis.helper.remove();\n\n\t\treturn false;\n\t}\n\n});\n\n})(jQuery);\n\n(function( $, undefined ) {\n\n/*jshint loopfunc: true */\n\nfunction isOverAxis( x, reference, size ) {\n\treturn ( x > reference ) && ( x < ( reference + size ) );\n}\n\nfunction isFloating(item) {\n\treturn (/left|right/).test(item.css(\"float\")) || (/inline|table-cell/).test(item.css(\"display\"));\n}\n\n$.widget(\"ui.sortable\", $.ui.mouse, {\n\tversion: \"1.10.3\",\n\twidgetEventPrefix: \"sort\",\n\tready: false,\n\toptions: {\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectWith: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tdropOnEmpty: true,\n\t\tforcePlaceholderSize: false,\n\t\tforceHelperSize: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\titems: \"> *\",\n\t\topacity: false,\n\t\tplaceholder: false,\n\t\trevert: false,\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\t\tzIndex: 1000,\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tbeforeStop: null,\n\t\tchange: null,\n\t\tdeactivate: null,\n\t\tout: null,\n\t\tover: null,\n\t\treceive: null,\n\t\tremove: null,\n\t\tsort: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tupdate: null\n\t},\n\t_create: function() {\n\n\t\tvar o = this.options;\n\t\tthis.containerCache = {};\n\t\tthis.element.addClass(\"ui-sortable\");\n\n\t\t//Get the items\n\t\tthis.refresh();\n\n\t\t//Let's determine if the items are being displayed horizontally\n\t\tthis.floating = this.items.length ? o.axis === \"x\" || isFloating(this.items[0].item) : false;\n\n\t\t//Let's determine the parent's offset\n\t\tthis.offset = this.element.offset();\n\n\t\t//Initialize mouse events for interaction\n\t\tthis._mouseInit();\n\n\t\t//We're ready to go\n\t\tthis.ready = true;\n\n\t},\n\n\t_destroy: function() {\n\t\tthis.element\n\t\t\t.removeClass(\"ui-sortable ui-sortable-disabled\");\n\t\tthis._mouseDestroy();\n\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\tthis.items[i].item.removeData(this.widgetName + \"-item\");\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function(key, value){\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.options[ key ] = value;\n\n\t\t\tthis.widget().toggleClass( \"ui-sortable-disabled\", !!value );\n\t\t} else {\n\t\t\t// Don't call widget base _setOption for disable as it adds ui-state-disabled class\n\t\t\t$.Widget.prototype._setOption.apply(this, arguments);\n\t\t}\n\t},\n\n\t_mouseCapture: function(event, overrideHandle) {\n\t\tvar currentItem = null,\n\t\t\tvalidHandle = false,\n\t\t\tthat = this;\n\n\t\tif (this.reverting) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif(this.options.disabled || this.options.type === \"static\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t//We have to refresh the items data once first\n\t\tthis._refreshItems(event);\n\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\n\t\t$(event.target).parents().each(function() {\n\t\t\tif($.data(this, that.widgetName + \"-item\") === that) {\n\t\t\t\tcurrentItem = $(this);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif($.data(event.target, that.widgetName + \"-item\") === that) {\n\t\t\tcurrentItem = $(event.target);\n\t\t}\n\n\t\tif(!currentItem) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.options.handle && !overrideHandle) {\n\t\t\t$(this.options.handle, currentItem).find(\"*\").addBack().each(function() {\n\t\t\t\tif(this === event.target) {\n\t\t\t\t\tvalidHandle = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(!validHandle) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.currentItem = currentItem;\n\t\tthis._removeCurrentsFromItems();\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function(event, overrideHandle, noActivation) {\n\n\t\tvar i, body,\n\t\t\to = this.options;\n\n\t\tthis.currentContainer = this;\n\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture\n\t\tthis.refreshPositions();\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper(event);\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//Get the next scrolling parent\n\t\tthis.scrollParent = this.helper.scrollParent();\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.offset = this.currentItem.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t$.extend(this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\t\t\tparent: this._getParentOffset(),\n\t\t\trelative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper\n\t\t});\n\n\t\t// Only after we got the offset, we can change the helper's position to absolute\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\n\t\tthis.helper.css(\"position\", \"absolute\");\n\t\tthis.cssPosition = this.helper.css(\"position\");\n\n\t\t//Generate the original position\n\t\tthis.originalPosition = this._generatePosition(event);\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\t(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));\n\n\t\t//Cache the former DOM position\n\t\tthis.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };\n\n\t\t//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way\n\t\tif(this.helper[0] !== this.currentItem[0]) {\n\t\t\tthis.currentItem.hide();\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthis._createPlaceholder();\n\n\t\t//Set a containment if given in the options\n\t\tif(o.containment) {\n\t\t\tthis._setContainment();\n\t\t}\n\n\t\tif( o.cursor && o.cursor !== \"auto\" ) { // cursor option\n\t\t\tbody = this.document.find( \"body\" );\n\n\t\t\t// support: IE\n\t\t\tthis.storedCursor = body.css( \"cursor\" );\n\t\t\tbody.css( \"cursor\", o.cursor );\n\n\t\t\tthis.storedStylesheet = $( \"\" ).appendTo( body );\n\t\t}\n\n\t\tif(o.opacity) { // opacity option\n\t\t\tif (this.helper.css(\"opacity\")) {\n\t\t\t\tthis._storedOpacity = this.helper.css(\"opacity\");\n\t\t\t}\n\t\t\tthis.helper.css(\"opacity\", o.opacity);\n\t\t}\n\n\t\tif(o.zIndex) { // zIndex option\n\t\t\tif (this.helper.css(\"zIndex\")) {\n\t\t\t\tthis._storedZIndex = this.helper.css(\"zIndex\");\n\t\t\t}\n\t\t\tthis.helper.css(\"zIndex\", o.zIndex);\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== \"HTML\") {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger(\"start\", event, this._uiHash());\n\n\t\t//Recache the helper size\n\t\tif(!this._preserveHelperProportions) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ($.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis.helper.addClass(\"ui-sortable-helper\");\n\t\tthis._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position\n\t\treturn true;\n\n\t},\n\n\t_mouseDrag: function(event) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options,\n\t\t\tscrolled = false;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition(event);\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\tif (!this.lastPositionAbs) {\n\t\t\tthis.lastPositionAbs = this.positionAbs;\n\t\t}\n\n\t\t//Do scrolling\n\t\tif(this.options.scroll) {\n\t\t\tif(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== \"HTML\") {\n\n\t\t\t\tif((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;\n\t\t\t\t} else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t\tif((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;\n\t\t\t\t} else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) {\n\t\t\t\t\tthis.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif(event.pageY - $(document).scrollTop() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);\n\t\t\t\t} else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);\n\t\t\t\t}\n\n\t\t\t\tif(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);\n\t\t\t\t} else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) {\n\t\t\t\t\tscrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) {\n\t\t\t\t$.ui.ddmanager.prepareOffsets(this, event);\n\t\t\t}\n\t\t}\n\n\t\t//Regenerate the absolute position used for position checks\n\t\tthis.positionAbs = this._convertPositionTo(\"absolute\");\n\n\t\t//Set the helper position\n\t\tif(!this.options.axis || this.options.axis !== \"y\") {\n\t\t\tthis.helper[0].style.left = this.position.left+\"px\";\n\t\t}\n\t\tif(!this.options.axis || this.options.axis !== \"x\") {\n\t\t\tthis.helper[0].style.top = this.position.top+\"px\";\n\t\t}\n\n\t\t//Rearrange\n\t\tfor (i = this.items.length - 1; i >= 0; i--) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[i];\n\t\t\titemElement = item.item[0];\n\t\t\tintersection = this._intersectsWithPointer(item);\n\t\t\tif (!intersection) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items form other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this moving items in \"sub-sortables\" can cause the placeholder to jitter\n\t\t\t// beetween the outer and inner container.\n\t\t\tif (item.instance !== this.currentContainer) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif (itemElement !== this.currentItem[0] &&\n\t\t\t\tthis.placeholder[intersection === 1 ? \"next\" : \"prev\"]()[0] !== itemElement &&\n\t\t\t\t!$.contains(this.placeholder[0], itemElement) &&\n\t\t\t\t(this.options.type === \"semi-dynamic\" ? !$.contains(this.element[0], itemElement) : true)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif (this.options.tolerance === \"pointer\" || this._intersectsWithSides(item)) {\n\t\t\t\t\tthis._rearrange(event, item);\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger(\"change\", event, this._uiHash());\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers(event);\n\n\t\t//Interconnect with droppables\n\t\tif($.ui.ddmanager) {\n\t\t\t$.ui.ddmanager.drag(this, event);\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger(\"sort\", event, this._uiHash());\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function(event, noPropagation) {\n\n\t\tif(!event) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ($.ui.ddmanager && !this.options.dropBehaviour) {\n\t\t\t$.ui.ddmanager.drop(this, event);\n\t\t}\n\n\t\tif(this.options.revert) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$(this.helper).animate( animation, parseInt(this.options.revert, 10) || 500, function() {\n\t\t\t\tthat._clear(event);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._clear(event, noPropagation);\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif(this.dragging) {\n\n\t\t\tthis._mouseUp({ target: null });\n\n\t\t\tif(this.options.helper === \"original\") {\n\t\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor (var i = this.containers.length - 1; i >= 0; i--){\n\t\t\t\tthis.containers[i]._trigger(\"deactivate\", null, this._uiHash(this));\n\t\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", null, this._uiHash(this));\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif (this.placeholder) {\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\n\t\t\tif(this.placeholder[0].parentNode) {\n\t\t\t\tthis.placeholder[0].parentNode.removeChild(this.placeholder[0]);\n\t\t\t}\n\t\t\tif(this.options.helper !== \"original\" && this.helper && this.helper[0].parentNode) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend(this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t});\n\n\t\t\tif(this.domPosition.prev) {\n\t\t\t\t$(this.domPosition.prev).after(this.currentItem);\n\t\t\t} else {\n\t\t\t\t$(this.domPosition.parent).prepend(this.currentItem);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function(o) {\n\n\t\tvar items = this._getItemsAsjQuery(o && o.connected),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$(items).each(function() {\n\t\t\tvar res = ($(o.item || this).attr(o.attribute || \"id\") || \"\").match(o.expression || (/(.+)[\\-=_](.+)/));\n\t\t\tif (res) {\n\t\t\t\tstr.push((o.key || res[1]+\"[]\")+\"=\"+(o.key && o.expression ? res[1] : res[2]));\n\t\t\t}\n\t\t});\n\n\t\tif(!str.length && o.key) {\n\t\t\tstr.push(o.key + \"=\");\n\t\t}\n\n\t\treturn str.join(\"&\");\n\n\t},\n\n\ttoArray: function(o) {\n\n\t\tvar items = this._getItemsAsjQuery(o && o.connected),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each(function() { ret.push($(o.item || this).attr(o.attribute || \"id\") || \"\"); });\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function(item) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t && ( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l && ( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t(this.options.tolerance !== \"pointer\" && this.helperProportions[this.floating ? \"width\" : \"height\"] > item[this.floating ? \"width\" : \"height\"])\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn (l < x1 + (this.helperProportions.width / 2) && // Right Half\n\t\t\t\tx2 - (this.helperProportions.width / 2) < r && // Left Half\n\t\t\t\tt < y1 + (this.helperProportions.height / 2) && // Bottom Half\n\t\t\t\ty2 - (this.helperProportions.height / 2) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function(item) {\n\n\t\tvar isOverElementHeight = (this.options.axis === \"x\") || isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),\n\t\t\tisOverElementWidth = (this.options.axis === \"y\") || isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth,\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif (!isOverElement) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.floating ?\n\t\t\t( ((horizontalDirection && horizontalDirection === \"right\") || verticalDirection === \"down\") ? 2 : 1 )\n\t\t\t: ( verticalDirection && (verticalDirection === \"down\" ? 2 : 1) );\n\n\t},\n\n\t_intersectsWithSides: function(item) {\n\n\t\tvar isOverBottomHalf = isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),\n\t\t\tisOverRightHalf = isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),\n\t\t\tverticalDirection = this._getDragVerticalDirection(),\n\t\t\thorizontalDirection = this._getDragHorizontalDirection();\n\n\t\tif (this.floating && horizontalDirection) {\n\t\t\treturn ((horizontalDirection === \"right\" && isOverRightHalf) || (horizontalDirection === \"left\" && !isOverRightHalf));\n\t\t} else {\n\t\t\treturn verticalDirection && ((verticalDirection === \"down\" && isOverBottomHalf) || (verticalDirection === \"up\" && !isOverBottomHalf));\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && (delta > 0 ? \"down\" : \"up\");\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && (delta > 0 ? \"right\" : \"left\");\n\t},\n\n\trefresh: function(event) {\n\t\tthis._refreshItems(event);\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ? [options.connectWith] : options.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function(connected) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif(connectWith && connected) {\n\t\t\tfor (i = connectWith.length - 1; i >= 0; i--){\n\t\t\t\tcur = $(connectWith[i]);\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j--){\n\t\t\t\t\tinst = $.data(cur[j], this.widgetFullName);\n\t\t\t\t\tif(inst && inst !== this && !inst.options.disabled) {\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), inst]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), this]);\n\n\t\tfor (i = queries.length - 1; i >= 0; i--){\n\t\t\tqueries[i][0].each(function() {\n\t\t\t\titems.push(this);\n\t\t\t});\n\t\t}\n\n\t\treturn $(items);\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find(\":data(\" + this.widgetName + \"-item)\");\n\n\t\tthis.items = $.grep(this.items, function (item) {\n\t\t\tfor (var j=0; j < list.length; j++) {\n\t\t\t\tif(list[j] === item.item[0]) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t},\n\n\t_refreshItems: function(event) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [this];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down\n\t\t\tfor (i = connectWith.length - 1; i >= 0; i--){\n\t\t\t\tcur = $(connectWith[i]);\n\t\t\t\tfor (j = cur.length - 1; j >= 0; j--){\n\t\t\t\t\tinst = $.data(cur[j], this.widgetFullName);\n\t\t\t\t\tif(inst && inst !== this && !inst.options.disabled) {\n\t\t\t\t\t\tqueries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);\n\t\t\t\t\t\tthis.containers.push(inst);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i = queries.length - 1; i >= 0; i--) {\n\t\t\ttargetData = queries[i][1];\n\t\t\t_queries = queries[i][0];\n\n\t\t\tfor (j=0, queriesLength = _queries.length; j < queriesLength; j++) {\n\t\t\t\titem = $(_queries[j]);\n\n\t\t\t\titem.data(this.widgetName + \"-item\", targetData); // Data for target checking (mouse manager)\n\n\t\t\t\titems.push({\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t},\n\n\trefreshPositions: function(fast) {\n\n\t\t//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change\n\t\tif(this.offsetParent && this.helper) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tvar i, item, t, p;\n\n\t\tfor (i = this.items.length - 1; i >= 0; i--){\n\t\t\titem = this.items[i];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;\n\n\t\t\tif (!fast) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\n\t\tif(this.options.custom && this.options.custom.refreshContainers) {\n\t\t\tthis.options.custom.refreshContainers.call(this);\n\t\t} else {\n\t\t\tfor (i = this.containers.length - 1; i >= 0; i--){\n\t\t\t\tp = this.containers[i].element.offset();\n\t\t\t\tthis.containers[i].containerCache.left = p.left;\n\t\t\t\tthis.containers[i].containerCache.top = p.top;\n\t\t\t\tthis.containers[i].containerCache.width\t= this.containers[i].element.outerWidth();\n\t\t\t\tthis.containers[i].containerCache.height = this.containers[i].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function(that) {\n\t\tthat = that || this;\n\t\tvar className,\n\t\t\to = that.options;\n\n\t\tif(!o.placeholder || o.placeholder.constructor === String) {\n\t\t\tclassName = o.placeholder;\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar nodeName = that.currentItem[0].nodeName.toLowerCase(),\n\t\t\t\t\t\telement = $( \"<\" + nodeName + \">\", that.document[0] )\n\t\t\t\t\t\t\t.addClass(className || that.currentItem[0].className+\" ui-sortable-placeholder\")\n\t\t\t\t\t\t\t.removeClass(\"ui-sortable-helper\");\n\n\t\t\t\t\tif ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat.currentItem.children().each(function() {\n\t\t\t\t\t\t\t$( \" \", that.document[0] )\n\t\t\t\t\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t\t\t\t\t.appendTo( element );\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function(container, p) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified\n\t\t\t\t\tif(className && !o.forcePlaceholderSize) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item\n\t\t\t\t\tif(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css(\"paddingTop\")||0, 10) - parseInt(that.currentItem.css(\"paddingBottom\")||0, 10)); }\n\t\t\t\t\tif(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css(\"paddingLeft\")||0, 10) - parseInt(that.currentItem.css(\"paddingRight\")||0, 10)); }\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $(o.placeholder.element.call(that.element, that.currentItem));\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after(that.placeholder);\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update(that, that.placeholder);\n\n\t},\n\n\t_contactContainers: function(event) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, base, cur, nearBottom, floating,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// get innermost container that intersects with item\n\t\tfor (i = this.containers.length - 1; i >= 0; i--) {\n\n\t\t\t// never consider a container that's located within the item itself\n\t\t\tif($.contains(this.currentItem[0], this.containers[i].element[0])) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif(this._intersectsWith(this.containers[i].containerCache)) {\n\n\t\t\t\t// if we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[i];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\t\tthis.containers[i]._trigger(\"out\", event, this._uiHash(this));\n\t\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// if no intersecting containers found, return\n\t\tif(!innermostContainer) {\n\t\t\treturn;\n\t\t}\n\n\t\t// move the item into the container if it's not there already\n\t\tif(this.containers.length === 1) {\n\t\t\tif (!this.containers[innermostIndex].containerCache.over) {\n\t\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\n\t\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t//When entering a new container, we will find the item with the least distance and append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || isFloating(this.currentItem);\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\tbase = this.positionAbs[posProperty] + this.offset.click[posProperty];\n\t\t\tfor (j = this.items.length - 1; j >= 0; j--) {\n\t\t\t\tif(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif(this.items[j].item[0] === this.currentItem[0]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (floating && !isOverAxis(this.positionAbs.top + this.offset.click.top, this.items[j].top, this.items[j].height)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcur = this.items[j].item.offset()[posProperty];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t\tcur += this.items[j][sizeProperty];\n\t\t\t\t}\n\n\t\t\t\tif(Math.abs(cur - base) < dist) {\n\t\t\t\t\tdist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\": \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif(!itemWithLeastDistance && !this.options.dropOnEmpty) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(this.currentContainer === this.containers[innermostIndex]) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\titemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);\n\t\t\tthis._trigger(\"change\", event, this._uiHash());\n\t\t\tthis.containers[innermostIndex]._trigger(\"change\", event, this._uiHash(this));\n\t\t\tthis.currentContainer = this.containers[innermostIndex];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update(this.currentContainer, this.placeholder);\n\n\t\t\tthis.containers[innermostIndex]._trigger(\"over\", event, this._uiHash(this));\n\t\t\tthis.containers[innermostIndex].containerCache.over = 1;\n\t\t}\n\n\n\t},\n\n\t_createHelper: function(event) {\n\n\t\tvar o = this.options,\n\t\t\thelper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem);\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif(!helper.parents(\"body\").length) {\n\t\t\t$(o.appendTo !== \"parent\" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);\n\t\t}\n\n\t\tif(helper[0] === this.currentItem[0]) {\n\t\t\tthis._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css(\"position\"), top: this.currentItem.css(\"top\"), left: this.currentItem.css(\"left\") };\n\t\t}\n\n\t\tif(!helper[0].style.width || o.forceHelperSize) {\n\t\t\thelper.width(this.currentItem.width());\n\t\t}\n\t\tif(!helper[0].style.height || o.forceHelperSize) {\n\t\t\thelper.height(this.currentItem.height());\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function(obj) {\n\t\tif (typeof obj === \"string\") {\n\t\t\tobj = obj.split(\" \");\n\t\t}\n\t\tif ($.isArray(obj)) {\n\t\t\tobj = {left: +obj[0], top: +obj[1] || 0};\n\t\t}\n\t\tif (\"left\" in obj) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif (\"right\" in obj) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif (\"top\" in obj) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif (\"bottom\" in obj) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that\n\t\t// the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag\n\t\tif(this.cssPosition === \"absolute\" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t// This needs to be actually done for all browsers, since pageX/pageY includes this information\n\t\t// with an ugly IE fix\n\t\tif( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === \"html\" && $.ui.ie)) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"),10) || 0),\n\t\t\tleft: po.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"),10) || 0)\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif(this.cssPosition === \"relative\") {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - (parseInt(this.helper.css(\"top\"),10) || 0) + this.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - (parseInt(this.helper.css(\"left\"),10) || 0) + this.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: (parseInt(this.currentItem.css(\"marginLeft\"),10) || 0),\n\t\t\ttop: (parseInt(this.currentItem.css(\"marginTop\"),10) || 0)\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar ce, co, over,\n\t\t\to = this.options;\n\t\tif(o.containment === \"parent\") {\n\t\t\to.containment = this.helper[0].parentNode;\n\t\t}\n\t\tif(o.containment === \"document\" || o.containment === \"window\") {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\t$(o.containment === \"document\" ? document : window).width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t($(o.containment === \"document\" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif(!(/^(document|window|parent)$/).test(o.containment)) {\n\t\t\tce = $(o.containment)[0];\n\t\t\tco = $(o.containment).offset();\n\t\t\tover = ($(ce).css(\"overflow\") !== \"hidden\");\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingLeft\"),10) || 0) - this.margins.left,\n\t\t\t\tco.top + (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) + (parseInt($(ce).css(\"paddingTop\"),10) || 0) - this.margins.top,\n\t\t\t\tco.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css(\"borderLeftWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingRight\"),10) || 0) - this.helperProportions.width - this.margins.left,\n\t\t\t\tco.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css(\"borderTopWidth\"),10) || 0) - (parseInt($(ce).css(\"paddingBottom\"),10) || 0) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function(d, pos) {\n\n\t\tif(!pos) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent,\n\t\t\tscrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpos.top\t+\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.top * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top * mod -\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpos.left +\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.relative.left * mod +\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left * mod\t-\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function(event) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif(this.cssPosition === \"relative\" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\tif(this.originalPosition) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif(this.containment) {\n\t\t\t\tif(event.pageX - this.offset.click.left < this.containment[0]) {\n\t\t\t\t\tpageX = this.containment[0] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top < this.containment[1]) {\n\t\t\t\t\tpageY = this.containment[1] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif(event.pageX - this.offset.click.left > this.containment[2]) {\n\t\t\t\t\tpageX = this.containment[2] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif(event.pageY - this.offset.click.top > this.containment[3]) {\n\t\t\t\t\tpageY = this.containment[3] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(o.grid) {\n\t\t\t\ttop = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];\n\t\t\t\tpageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;\n\n\t\t\t\tleft = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];\n\t\t\t\tpageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\t\t\t\tpageY -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.top -\t\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.top\t-\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.top +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))\n\t\t\t),\n\t\t\tleft: (\n\t\t\t\tpageX -\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// The absolute mouse position\n\t\t\t\tthis.offset.click.left -\t\t\t\t\t\t\t\t\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.relative.left\t-\t\t\t\t\t\t\t\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.parent.left +\t\t\t\t\t\t\t\t\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\t( ( this.cssPosition === \"fixed\" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function(event, i, a, hardRefresh) {\n\n\t\ta ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === \"down\" ? i.item[0] : i.item[0].nextSibling));\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay(function() {\n\t\t\tif(counter === this.counter) {\n\t\t\t\tthis.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove\n\t\t\t}\n\t\t});\n\n\t},\n\n\t_clear: function(event, noPropagation) {\n\n\t\tthis.reverting = false;\n\t\t// We delay all events that have to be triggered to after the point where the placeholder has been removed and\n\t\t// everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)\n\t\tif(!this._noFinalSort && this.currentItem.parent().length) {\n\t\t\tthis.placeholder.before(this.currentItem);\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif(this.helper[0] === this.currentItem[0]) {\n\t\t\tfor(i in this._storedCSS) {\n\t\t\t\tif(this._storedCSS[i] === \"auto\" || this._storedCSS[i] === \"static\") {\n\t\t\t\t\tthis._storedCSS[i] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css(this._storedCSS).removeClass(\"ui-sortable-helper\");\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif(this.fromOutside && !noPropagation) {\n\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"receive\", event, this._uiHash(this.fromOutside)); });\n\t\t}\n\t\tif((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(\".ui-sortable-helper\")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) {\n\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"update\", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif (this !== this.currentContainer) {\n\t\t\tif(!noPropagation) {\n\t\t\t\tdelayedTriggers.push(function(event) { this._trigger(\"remove\", event, this._uiHash()); });\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"receive\", event, this._uiHash(this)); }; }).call(this, this.currentContainer));\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"update\", event, this._uiHash(this)); }; }).call(this, this.currentContainer));\n\t\t\t}\n\t\t}\n\n\n\t\t//Post events to containers\n\t\tfor (i = this.containers.length - 1; i >= 0; i--){\n\t\t\tif(!noPropagation) {\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"deactivate\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\n\t\t\t}\n\t\t\tif(this.containers[i].containerCache.over) {\n\t\t\t\tdelayedTriggers.push((function(c) { return function(event) { c._trigger(\"out\", event, this._uiHash(this)); }; }).call(this, this.containers[i]));\n\t\t\t\tthis.containers[i].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this.storedCursor ) {\n\t\t\tthis.document.find( \"body\" ).css( \"cursor\", this.storedCursor );\n\t\t\tthis.storedStylesheet.remove();\n\t\t}\n\t\tif(this._storedOpacity) {\n\t\t\tthis.helper.css(\"opacity\", this._storedOpacity);\n\t\t}\n\t\tif(this._storedZIndex) {\n\t\t\tthis.helper.css(\"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex);\n\t\t}\n\n\t\tthis.dragging = false;\n\t\tif(this.cancelHelperRemoval) {\n\t\t\tif(!noPropagation) {\n\t\t\t\tthis._trigger(\"beforeStop\", event, this._uiHash());\n\t\t\t\tfor (i=0; i < delayedTriggers.length; i++) {\n\t\t\t\t\tdelayedTriggers[i].call(this, event);\n\t\t\t\t} //Trigger all delayed events\n\t\t\t\tthis._trigger(\"stop\", event, this._uiHash());\n\t\t\t}\n\n\t\t\tthis.fromOutside = false;\n\t\t\treturn false;\n\t\t}\n\n\t\tif(!noPropagation) {\n\t\t\tthis._trigger(\"beforeStop\", event, this._uiHash());\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!\n\t\tthis.placeholder[0].parentNode.removeChild(this.placeholder[0]);\n\n\t\tif(this.helper[0] !== this.currentItem[0]) {\n\t\t\tthis.helper.remove();\n\t\t}\n\t\tthis.helper = null;\n\n\t\tif(!noPropagation) {\n\t\t\tfor (i=0; i < delayedTriggers.length; i++) {\n\t\t\t\tdelayedTriggers[i].call(this, event);\n\t\t\t} //Trigger all delayed events\n\t\t\tthis._trigger(\"stop\", event, this._uiHash());\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn true;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ($.Widget.prototype._trigger.apply(this, arguments) === false) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function(_inst) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $([]),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n});\n\n})(jQuery);\n\n(function($, undefined) {\n\nvar dataSpace = \"ui-effects-\";\n\n$.effects = {\n\teffect: {}\n};\n\n/*!\n * jQuery Color Animations v2.1.2\n * https://github.com/jquery/jquery-color\n *\n * Copyright 2013 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * Date: Wed Jan 16 08:47:09 2013 -0600\n */\n(function( jQuery, undefined ) {\n\n\tvar stepHooks = \"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\",\n\n\t// plusequals test for += 100 -= 100\n\trplusequals = /^([\\-+])=\\s*(\\d+\\.?\\d*)/,\n\t// a set of RE's that can match strings and generate color tuples.\n\tstringParsers = [{\n\t\t\tre: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ],\n\t\t\t\t\texecResult[ 3 ],\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ] * 2.55,\n\t\t\t\t\texecResult[ 2 ] * 2.55,\n\t\t\t\t\texecResult[ 3 ] * 2.55,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\t// this regex ignores A-F because it's compared against an already lowercased string\n\t\t\tre: /#([a-f0-9])([a-f0-9])([a-f0-9])/,\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\tparseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),\n\t\t\t\t\tparseInt( execResult[ 3 ] + execResult[ 3 ], 16 )\n\t\t\t\t];\n\t\t\t}\n\t\t}, {\n\t\t\tre: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/,\n\t\t\tspace: \"hsla\",\n\t\t\tparse: function( execResult ) {\n\t\t\t\treturn [\n\t\t\t\t\texecResult[ 1 ],\n\t\t\t\t\texecResult[ 2 ] / 100,\n\t\t\t\t\texecResult[ 3 ] / 100,\n\t\t\t\t\texecResult[ 4 ]\n\t\t\t\t];\n\t\t\t}\n\t\t}],\n\n\t// jQuery.Color( )\n\tcolor = jQuery.Color = function( color, green, blue, alpha ) {\n\t\treturn new jQuery.Color.fn.parse( color, green, blue, alpha );\n\t},\n\tspaces = {\n\t\trgba: {\n\t\t\tprops: {\n\t\t\t\tred: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tgreen: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t},\n\t\t\t\tblue: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"byte\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thsla: {\n\t\t\tprops: {\n\t\t\t\thue: {\n\t\t\t\t\tidx: 0,\n\t\t\t\t\ttype: \"degrees\"\n\t\t\t\t},\n\t\t\t\tsaturation: {\n\t\t\t\t\tidx: 1,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t},\n\t\t\t\tlightness: {\n\t\t\t\t\tidx: 2,\n\t\t\t\t\ttype: \"percent\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tpropTypes = {\n\t\t\"byte\": {\n\t\t\tfloor: true,\n\t\t\tmax: 255\n\t\t},\n\t\t\"percent\": {\n\t\t\tmax: 1\n\t\t},\n\t\t\"degrees\": {\n\t\t\tmod: 360,\n\t\t\tfloor: true\n\t\t}\n\t},\n\tsupport = color.support = {},\n\n\t// element for support tests\n\tsupportElem = jQuery( \"

\" )[ 0 ],\n\n\t// colors = jQuery.Color.names\n\tcolors,\n\n\t// local aliases of functions called often\n\teach = jQuery.each;\n\n// determine rgba support immediately\nsupportElem.style.cssText = \"background-color:rgba(1,1,1,.5)\";\nsupport.rgba = supportElem.style.backgroundColor.indexOf( \"rgba\" ) > -1;\n\n// define cache name and alpha properties\n// for rgba and hsla spaces\neach( spaces, function( spaceName, space ) {\n\tspace.cache = \"_\" + spaceName;\n\tspace.props.alpha = {\n\t\tidx: 3,\n\t\ttype: \"percent\",\n\t\tdef: 1\n\t};\n});\n\nfunction clamp( value, prop, allowEmpty ) {\n\tvar type = propTypes[ prop.type ] || {};\n\n\tif ( value == null ) {\n\t\treturn (allowEmpty || !prop.def) ? null : prop.def;\n\t}\n\n\t// ~~ is an short way of doing floor for positive numbers\n\tvalue = type.floor ? ~~value : parseFloat( value );\n\n\t// IE will pass in empty strings as value for alpha,\n\t// which will hit this case\n\tif ( isNaN( value ) ) {\n\t\treturn prop.def;\n\t}\n\n\tif ( type.mod ) {\n\t\t// we add mod before modding to make sure that negatives values\n\t\t// get converted properly: -10 -> 350\n\t\treturn (value + type.mod) % type.mod;\n\t}\n\n\t// for now all property types without mod have min and max\n\treturn 0 > value ? 0 : type.max < value ? type.max : value;\n}\n\nfunction stringParse( string ) {\n\tvar inst = color(),\n\t\trgba = inst._rgba = [];\n\n\tstring = string.toLowerCase();\n\n\teach( stringParsers, function( i, parser ) {\n\t\tvar parsed,\n\t\t\tmatch = parser.re.exec( string ),\n\t\t\tvalues = match && parser.parse( match ),\n\t\t\tspaceName = parser.space || \"rgba\";\n\n\t\tif ( values ) {\n\t\t\tparsed = inst[ spaceName ]( values );\n\n\t\t\t// if this was an rgba parse the assignment might happen twice\n\t\t\t// oh well....\n\t\t\tinst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];\n\t\t\trgba = inst._rgba = parsed._rgba;\n\n\t\t\t// exit each( stringParsers ) here because we matched\n\t\t\treturn false;\n\t\t}\n\t});\n\n\t// Found a stringParser that handled it\n\tif ( rgba.length ) {\n\n\t\t// if this came from a parsed string, force \"transparent\" when alpha is 0\n\t\t// chrome, (and maybe others) return \"transparent\" as rgba(0,0,0,0)\n\t\tif ( rgba.join() === \"0,0,0,0\" ) {\n\t\t\tjQuery.extend( rgba, colors.transparent );\n\t\t}\n\t\treturn inst;\n\t}\n\n\t// named colors\n\treturn colors[ string ];\n}\n\ncolor.fn = jQuery.extend( color.prototype, {\n\tparse: function( red, green, blue, alpha ) {\n\t\tif ( red === undefined ) {\n\t\t\tthis._rgba = [ null, null, null, null ];\n\t\t\treturn this;\n\t\t}\n\t\tif ( red.jquery || red.nodeType ) {\n\t\t\tred = jQuery( red ).css( green );\n\t\t\tgreen = undefined;\n\t\t}\n\n\t\tvar inst = this,\n\t\t\ttype = jQuery.type( red ),\n\t\t\trgba = this._rgba = [];\n\n\t\t// more than 1 argument specified - assume ( red, green, blue, alpha )\n\t\tif ( green !== undefined ) {\n\t\t\tred = [ red, green, blue, alpha ];\n\t\t\ttype = \"array\";\n\t\t}\n\n\t\tif ( type === \"string\" ) {\n\t\t\treturn this.parse( stringParse( red ) || colors._default );\n\t\t}\n\n\t\tif ( type === \"array\" ) {\n\t\t\teach( spaces.rgba.props, function( key, prop ) {\n\t\t\t\trgba[ prop.idx ] = clamp( red[ prop.idx ], prop );\n\t\t\t});\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( type === \"object\" ) {\n\t\t\tif ( red instanceof color ) {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tif ( red[ space.cache ] ) {\n\t\t\t\t\t\tinst[ space.cache ] = red[ space.cache ].slice();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\teach( spaces, function( spaceName, space ) {\n\t\t\t\t\tvar cache = space.cache;\n\t\t\t\t\teach( space.props, function( key, prop ) {\n\n\t\t\t\t\t\t// if the cache doesn't exist, and we know how to convert\n\t\t\t\t\t\tif ( !inst[ cache ] && space.to ) {\n\n\t\t\t\t\t\t\t// if the value was null, we don't need to copy it\n\t\t\t\t\t\t\t// if the key was alpha, we don't need to copy it either\n\t\t\t\t\t\t\tif ( key === \"alpha\" || red[ key ] == null ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinst[ cache ] = space.to( inst._rgba );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// this is the only case where we allow nulls for ALL properties.\n\t\t\t\t\t\t// call clamp with alwaysAllowEmpty\n\t\t\t\t\t\tinst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );\n\t\t\t\t\t});\n\n\t\t\t\t\t// everything defined but alpha?\n\t\t\t\t\tif ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {\n\t\t\t\t\t\t// use the default of 1\n\t\t\t\t\t\tinst[ cache ][ 3 ] = 1;\n\t\t\t\t\t\tif ( space.from ) {\n\t\t\t\t\t\t\tinst._rgba = space.from( inst[ cache ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t},\n\tis: function( compare ) {\n\t\tvar is = color( compare ),\n\t\t\tsame = true,\n\t\t\tinst = this;\n\n\t\teach( spaces, function( _, space ) {\n\t\t\tvar localCache,\n\t\t\t\tisCache = is[ space.cache ];\n\t\t\tif (isCache) {\n\t\t\t\tlocalCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];\n\t\t\t\teach( space.props, function( _, prop ) {\n\t\t\t\t\tif ( isCache[ prop.idx ] != null ) {\n\t\t\t\t\t\tsame = ( isCache[ prop.idx ] === localCache[ prop.idx ] );\n\t\t\t\t\t\treturn same;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn same;\n\t\t});\n\t\treturn same;\n\t},\n\t_space: function() {\n\t\tvar used = [],\n\t\t\tinst = this;\n\t\teach( spaces, function( spaceName, space ) {\n\t\t\tif ( inst[ space.cache ] ) {\n\t\t\t\tused.push( spaceName );\n\t\t\t}\n\t\t});\n\t\treturn used.pop();\n\t},\n\ttransition: function( other, distance ) {\n\t\tvar end = color( other ),\n\t\t\tspaceName = end._space(),\n\t\t\tspace = spaces[ spaceName ],\n\t\t\tstartColor = this.alpha() === 0 ? color( \"transparent\" ) : this,\n\t\t\tstart = startColor[ space.cache ] || space.to( startColor._rgba ),\n\t\t\tresult = start.slice();\n\n\t\tend = end[ space.cache ];\n\t\teach( space.props, function( key, prop ) {\n\t\t\tvar index = prop.idx,\n\t\t\t\tstartValue = start[ index ],\n\t\t\t\tendValue = end[ index ],\n\t\t\t\ttype = propTypes[ prop.type ] || {};\n\n\t\t\t// if null, don't override start value\n\t\t\tif ( endValue === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// if null - use end\n\t\t\tif ( startValue === null ) {\n\t\t\t\tresult[ index ] = endValue;\n\t\t\t} else {\n\t\t\t\tif ( type.mod ) {\n\t\t\t\t\tif ( endValue - startValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue += type.mod;\n\t\t\t\t\t} else if ( startValue - endValue > type.mod / 2 ) {\n\t\t\t\t\t\tstartValue -= type.mod;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );\n\t\t\t}\n\t\t});\n\t\treturn this[ spaceName ]( result );\n\t},\n\tblend: function( opaque ) {\n\t\t// if we are already opaque - return ourself\n\t\tif ( this._rgba[ 3 ] === 1 ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tvar rgb = this._rgba.slice(),\n\t\t\ta = rgb.pop(),\n\t\t\tblend = color( opaque )._rgba;\n\n\t\treturn color( jQuery.map( rgb, function( v, i ) {\n\t\t\treturn ( 1 - a ) * blend[ i ] + a * v;\n\t\t}));\n\t},\n\ttoRgbaString: function() {\n\t\tvar prefix = \"rgba(\",\n\t\t\trgba = jQuery.map( this._rgba, function( v, i ) {\n\t\t\t\treturn v == null ? ( i > 2 ? 1 : 0 ) : v;\n\t\t\t});\n\n\t\tif ( rgba[ 3 ] === 1 ) {\n\t\t\trgba.pop();\n\t\t\tprefix = \"rgb(\";\n\t\t}\n\n\t\treturn prefix + rgba.join() + \")\";\n\t},\n\ttoHslaString: function() {\n\t\tvar prefix = \"hsla(\",\n\t\t\thsla = jQuery.map( this.hsla(), function( v, i ) {\n\t\t\t\tif ( v == null ) {\n\t\t\t\t\tv = i > 2 ? 1 : 0;\n\t\t\t\t}\n\n\t\t\t\t// catch 1 and 2\n\t\t\t\tif ( i && i < 3 ) {\n\t\t\t\t\tv = Math.round( v * 100 ) + \"%\";\n\t\t\t\t}\n\t\t\t\treturn v;\n\t\t\t});\n\n\t\tif ( hsla[ 3 ] === 1 ) {\n\t\t\thsla.pop();\n\t\t\tprefix = \"hsl(\";\n\t\t}\n\t\treturn prefix + hsla.join() + \")\";\n\t},\n\ttoHexString: function( includeAlpha ) {\n\t\tvar rgba = this._rgba.slice(),\n\t\t\talpha = rgba.pop();\n\n\t\tif ( includeAlpha ) {\n\t\t\trgba.push( ~~( alpha * 255 ) );\n\t\t}\n\n\t\treturn \"#\" + jQuery.map( rgba, function( v ) {\n\n\t\t\t// default to 0 when nulls exist\n\t\t\tv = ( v || 0 ).toString( 16 );\n\t\t\treturn v.length === 1 ? \"0\" + v : v;\n\t\t}).join(\"\");\n\t},\n\ttoString: function() {\n\t\treturn this._rgba[ 3 ] === 0 ? \"transparent\" : this.toRgbaString();\n\t}\n});\ncolor.fn.parse.prototype = color.fn;\n\n// hsla conversions adapted from:\n// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021\n\nfunction hue2rgb( p, q, h ) {\n\th = ( h + 1 ) % 1;\n\tif ( h * 6 < 1 ) {\n\t\treturn p + (q - p) * h * 6;\n\t}\n\tif ( h * 2 < 1) {\n\t\treturn q;\n\t}\n\tif ( h * 3 < 2 ) {\n\t\treturn p + (q - p) * ((2/3) - h) * 6;\n\t}\n\treturn p;\n}\n\nspaces.hsla.to = function ( rgba ) {\n\tif ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {\n\t\treturn [ null, null, null, rgba[ 3 ] ];\n\t}\n\tvar r = rgba[ 0 ] / 255,\n\t\tg = rgba[ 1 ] / 255,\n\t\tb = rgba[ 2 ] / 255,\n\t\ta = rgba[ 3 ],\n\t\tmax = Math.max( r, g, b ),\n\t\tmin = Math.min( r, g, b ),\n\t\tdiff = max - min,\n\t\tadd = max + min,\n\t\tl = add * 0.5,\n\t\th, s;\n\n\tif ( min === max ) {\n\t\th = 0;\n\t} else if ( r === max ) {\n\t\th = ( 60 * ( g - b ) / diff ) + 360;\n\t} else if ( g === max ) {\n\t\th = ( 60 * ( b - r ) / diff ) + 120;\n\t} else {\n\t\th = ( 60 * ( r - g ) / diff ) + 240;\n\t}\n\n\t// chroma (diff) == 0 means greyscale which, by definition, saturation = 0%\n\t// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)\n\tif ( diff === 0 ) {\n\t\ts = 0;\n\t} else if ( l <= 0.5 ) {\n\t\ts = diff / add;\n\t} else {\n\t\ts = diff / ( 2 - add );\n\t}\n\treturn [ Math.round(h) % 360, s, l, a == null ? 1 : a ];\n};\n\nspaces.hsla.from = function ( hsla ) {\n\tif ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {\n\t\treturn [ null, null, null, hsla[ 3 ] ];\n\t}\n\tvar h = hsla[ 0 ] / 360,\n\t\ts = hsla[ 1 ],\n\t\tl = hsla[ 2 ],\n\t\ta = hsla[ 3 ],\n\t\tq = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,\n\t\tp = 2 * l - q;\n\n\treturn [\n\t\tMath.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h ) * 255 ),\n\t\tMath.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),\n\t\ta\n\t];\n};\n\n\neach( spaces, function( spaceName, space ) {\n\tvar props = space.props,\n\t\tcache = space.cache,\n\t\tto = space.to,\n\t\tfrom = space.from;\n\n\t// makes rgba() and hsla()\n\tcolor.fn[ spaceName ] = function( value ) {\n\n\t\t// generate a cache for this space if it doesn't exist\n\t\tif ( to && !this[ cache ] ) {\n\t\t\tthis[ cache ] = to( this._rgba );\n\t\t}\n\t\tif ( value === undefined ) {\n\t\t\treturn this[ cache ].slice();\n\t\t}\n\n\t\tvar ret,\n\t\t\ttype = jQuery.type( value ),\n\t\t\tarr = ( type === \"array\" || type === \"object\" ) ? value : arguments,\n\t\t\tlocal = this[ cache ].slice();\n\n\t\teach( props, function( key, prop ) {\n\t\t\tvar val = arr[ type === \"object\" ? key : prop.idx ];\n\t\t\tif ( val == null ) {\n\t\t\t\tval = local[ prop.idx ];\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = clamp( val, prop );\n\t\t});\n\n\t\tif ( from ) {\n\t\t\tret = color( from( local ) );\n\t\t\tret[ cache ] = local;\n\t\t\treturn ret;\n\t\t} else {\n\t\t\treturn color( local );\n\t\t}\n\t};\n\n\t// makes red() green() blue() alpha() hue() saturation() lightness()\n\teach( props, function( key, prop ) {\n\t\t// alpha is included in more than one space\n\t\tif ( color.fn[ key ] ) {\n\t\t\treturn;\n\t\t}\n\t\tcolor.fn[ key ] = function( value ) {\n\t\t\tvar vtype = jQuery.type( value ),\n\t\t\t\tfn = ( key === \"alpha\" ? ( this._hsla ? \"hsla\" : \"rgba\" ) : spaceName ),\n\t\t\t\tlocal = this[ fn ](),\n\t\t\t\tcur = local[ prop.idx ],\n\t\t\t\tmatch;\n\n\t\t\tif ( vtype === \"undefined\" ) {\n\t\t\t\treturn cur;\n\t\t\t}\n\n\t\t\tif ( vtype === \"function\" ) {\n\t\t\t\tvalue = value.call( this, cur );\n\t\t\t\tvtype = jQuery.type( value );\n\t\t\t}\n\t\t\tif ( value == null && prop.empty ) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif ( vtype === \"string\" ) {\n\t\t\t\tmatch = rplusequals.exec( value );\n\t\t\t\tif ( match ) {\n\t\t\t\t\tvalue = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === \"+\" ? 1 : -1 );\n\t\t\t\t}\n\t\t\t}\n\t\t\tlocal[ prop.idx ] = value;\n\t\t\treturn this[ fn ]( local );\n\t\t};\n\t});\n});\n\n// add cssHook and .fx.step function for each named hook.\n// accept a space separated string of properties\ncolor.hook = function( hook ) {\n\tvar hooks = hook.split( \" \" );\n\teach( hooks, function( i, hook ) {\n\t\tjQuery.cssHooks[ hook ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar parsed, curElem,\n\t\t\t\t\tbackgroundColor = \"\";\n\n\t\t\t\tif ( value !== \"transparent\" && ( jQuery.type( value ) !== \"string\" || ( parsed = stringParse( value ) ) ) ) {\n\t\t\t\t\tvalue = color( parsed || value );\n\t\t\t\t\tif ( !support.rgba && value._rgba[ 3 ] !== 1 ) {\n\t\t\t\t\t\tcurElem = hook === \"backgroundColor\" ? elem.parentNode : elem;\n\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t(backgroundColor === \"\" || backgroundColor === \"transparent\") &&\n\t\t\t\t\t\t\tcurElem && curElem.style\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tbackgroundColor = jQuery.css( curElem, \"backgroundColor\" );\n\t\t\t\t\t\t\t\tcurElem = curElem.parentNode;\n\t\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvalue = value.blend( backgroundColor && backgroundColor !== \"transparent\" ?\n\t\t\t\t\t\t\tbackgroundColor :\n\t\t\t\t\t\t\t\"_default\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = value.toRgbaString();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\telem.style[ hook ] = value;\n\t\t\t\t} catch( e ) {\n\t\t\t\t\t// wrapped to prevent IE from throwing errors on \"invalid\" values like 'auto' or 'inherit'\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tjQuery.fx.step[ hook ] = function( fx ) {\n\t\t\tif ( !fx.colorInit ) {\n\t\t\t\tfx.start = color( fx.elem, hook );\n\t\t\t\tfx.end = color( fx.end );\n\t\t\t\tfx.colorInit = true;\n\t\t\t}\n\t\t\tjQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );\n\t\t};\n\t});\n\n};\n\ncolor.hook( stepHooks );\n\njQuery.cssHooks.borderColor = {\n\texpand: function( value ) {\n\t\tvar expanded = {};\n\n\t\teach( [ \"Top\", \"Right\", \"Bottom\", \"Left\" ], function( i, part ) {\n\t\t\texpanded[ \"border\" + part + \"Color\" ] = value;\n\t\t});\n\t\treturn expanded;\n\t}\n};\n\n// Basic color names only.\n// Usage of any of the other color names requires adding yourself or including\n// jquery.color.svg-names.js.\ncolors = jQuery.Color.names = {\n\t// 4.1. Basic color keywords\n\taqua: \"#00ffff\",\n\tblack: \"#000000\",\n\tblue: \"#0000ff\",\n\tfuchsia: \"#ff00ff\",\n\tgray: \"#808080\",\n\tgreen: \"#008000\",\n\tlime: \"#00ff00\",\n\tmaroon: \"#800000\",\n\tnavy: \"#000080\",\n\tolive: \"#808000\",\n\tpurple: \"#800080\",\n\tred: \"#ff0000\",\n\tsilver: \"#c0c0c0\",\n\tteal: \"#008080\",\n\twhite: \"#ffffff\",\n\tyellow: \"#ffff00\",\n\n\t// 4.2.3. \"transparent\" color keyword\n\ttransparent: [ null, null, null, 0 ],\n\n\t_default: \"#ffffff\"\n};\n\n})( jQuery );\n\n\n/******************************************************************************/\n/****************************** CLASS ANIMATIONS ******************************/\n/******************************************************************************/\n(function() {\n\nvar classAnimationActions = [ \"add\", \"remove\", \"toggle\" ],\n\tshorthandStyles = {\n\t\tborder: 1,\n\t\tborderBottom: 1,\n\t\tborderColor: 1,\n\t\tborderLeft: 1,\n\t\tborderRight: 1,\n\t\tborderTop: 1,\n\t\tborderWidth: 1,\n\t\tmargin: 1,\n\t\tpadding: 1\n\t};\n\n$.each([ \"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\" ], function( _, prop ) {\n\t$.fx.step[ prop ] = function( fx ) {\n\t\tif ( fx.end !== \"none\" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {\n\t\t\tjQuery.style( fx.elem, prop, fx.end );\n\t\t\tfx.setAttr = true;\n\t\t}\n\t};\n});\n\nfunction getElementStyles( elem ) {\n\tvar key, len,\n\t\tstyle = elem.ownerDocument.defaultView ?\n\t\t\telem.ownerDocument.defaultView.getComputedStyle( elem, null ) :\n\t\t\telem.currentStyle,\n\t\tstyles = {};\n\n\tif ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {\n\t\tlen = style.length;\n\t\twhile ( len-- ) {\n\t\t\tkey = style[ len ];\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ $.camelCase( key ) ] = style[ key ];\n\t\t\t}\n\t\t}\n\t// support: Opera, IE <9\n\t} else {\n\t\tfor ( key in style ) {\n\t\t\tif ( typeof style[ key ] === \"string\" ) {\n\t\t\t\tstyles[ key ] = style[ key ];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn styles;\n}\n\n\nfunction styleDifference( oldStyle, newStyle ) {\n\tvar diff = {},\n\t\tname, value;\n\n\tfor ( name in newStyle ) {\n\t\tvalue = newStyle[ name ];\n\t\tif ( oldStyle[ name ] !== value ) {\n\t\t\tif ( !shorthandStyles[ name ] ) {\n\t\t\t\tif ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {\n\t\t\t\t\tdiff[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n// support: jQuery <1.8\nif ( !$.fn.addBack ) {\n\t$.fn.addBack = function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t};\n}\n\n$.effects.animateClass = function( value, duration, easing, callback ) {\n\tvar o = $.speed( duration, easing, callback );\n\n\treturn this.queue( function() {\n\t\tvar animated = $( this ),\n\t\t\tbaseClass = animated.attr( \"class\" ) || \"\",\n\t\t\tapplyClassChange,\n\t\t\tallAnimations = o.children ? animated.find( \"*\" ).addBack() : animated;\n\n\t\t// map the animated objects to store the original styles.\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tvar el = $( this );\n\t\t\treturn {\n\t\t\t\tel: el,\n\t\t\t\tstart: getElementStyles( this )\n\t\t\t};\n\t\t});\n\n\t\t// apply class change\n\t\tapplyClassChange = function() {\n\t\t\t$.each( classAnimationActions, function(i, action) {\n\t\t\t\tif ( value[ action ] ) {\n\t\t\t\t\tanimated[ action + \"Class\" ]( value[ action ] );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tapplyClassChange();\n\n\t\t// map all animated objects again - calculate new styles and diff\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tthis.end = getElementStyles( this.el[ 0 ] );\n\t\t\tthis.diff = styleDifference( this.start, this.end );\n\t\t\treturn this;\n\t\t});\n\n\t\t// apply original class\n\t\tanimated.attr( \"class\", baseClass );\n\n\t\t// map all animated objects again - this time collecting a promise\n\t\tallAnimations = allAnimations.map(function() {\n\t\t\tvar styleInfo = this,\n\t\t\t\tdfd = $.Deferred(),\n\t\t\t\topts = $.extend({}, o, {\n\t\t\t\t\tqueue: false,\n\t\t\t\t\tcomplete: function() {\n\t\t\t\t\t\tdfd.resolve( styleInfo );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tthis.el.animate( this.diff, opts );\n\t\t\treturn dfd.promise();\n\t\t});\n\n\t\t// once all animations have completed:\n\t\t$.when.apply( $, allAnimations.get() ).done(function() {\n\n\t\t\t// set the final class\n\t\t\tapplyClassChange();\n\n\t\t\t// for each animated element,\n\t\t\t// clear all css properties that were animated\n\t\t\t$.each( arguments, function() {\n\t\t\t\tvar el = this.el;\n\t\t\t\t$.each( this.diff, function(key) {\n\t\t\t\t\tel.css( key, \"\" );\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// this is guarnteed to be there if you use jQuery.speed()\n\t\t\t// it also handles dequeuing the next anim...\n\t\t\to.complete.call( animated[ 0 ] );\n\t\t});\n\t});\n};\n\n$.fn.extend({\n\taddClass: (function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn speed ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ add: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.addClass ),\n\n\tremoveClass: (function( orig ) {\n\t\treturn function( classNames, speed, easing, callback ) {\n\t\t\treturn arguments.length > 1 ?\n\t\t\t\t$.effects.animateClass.call( this,\n\t\t\t\t\t{ remove: classNames }, speed, easing, callback ) :\n\t\t\t\torig.apply( this, arguments );\n\t\t};\n\t})( $.fn.removeClass ),\n\n\ttoggleClass: (function( orig ) {\n\t\treturn function( classNames, force, speed, easing, callback ) {\n\t\t\tif ( typeof force === \"boolean\" || force === undefined ) {\n\t\t\t\tif ( !speed ) {\n\t\t\t\t\t// without speed parameter\n\t\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t\t} else {\n\t\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t\t(force ? { add: classNames } : { remove: classNames }),\n\t\t\t\t\t\tspeed, easing, callback );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// without force parameter\n\t\t\t\treturn $.effects.animateClass.call( this,\n\t\t\t\t\t{ toggle: classNames }, force, speed, easing );\n\t\t\t}\n\t\t};\n\t})( $.fn.toggleClass ),\n\n\tswitchClass: function( remove, add, speed, easing, callback) {\n\t\treturn $.effects.animateClass.call( this, {\n\t\t\tadd: add,\n\t\t\tremove: remove\n\t\t}, speed, easing, callback );\n\t}\n});\n\n})();\n\n/******************************************************************************/\n/*********************************** EFFECTS **********************************/\n/******************************************************************************/\n\n(function() {\n\n$.extend( $.effects, {\n\tversion: \"1.10.3\",\n\n\t// Saves a set of properties in a data storage\n\tsave: function( element, set ) {\n\t\tfor( var i=0; i < set.length; i++ ) {\n\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\telement.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Restores a set of previously saved properties from a data storage\n\trestore: function( element, set ) {\n\t\tvar val, i;\n\t\tfor( i=0; i < set.length; i++ ) {\n\t\t\tif ( set[ i ] !== null ) {\n\t\t\t\tval = element.data( dataSpace + set[ i ] );\n\t\t\t\t// support: jQuery 1.6.2\n\t\t\t\t// http://bugs.jquery.com/ticket/9917\n\t\t\t\t// jQuery 1.6.2 incorrectly returns undefined for any falsy value.\n\t\t\t\t// We can't differentiate between \"\" and 0 here, so we just assume\n\t\t\t\t// empty string since it's likely to be a more common value...\n\t\t\t\tif ( val === undefined ) {\n\t\t\t\t\tval = \"\";\n\t\t\t\t}\n\t\t\t\telement.css( set[ i ], val );\n\t\t\t}\n\t\t}\n\t},\n\n\tsetMode: function( el, mode ) {\n\t\tif (mode === \"toggle\") {\n\t\t\tmode = el.is( \":hidden\" ) ? \"show\" : \"hide\";\n\t\t}\n\t\treturn mode;\n\t},\n\n\t// Translates a [top,left] array into a baseline value\n\t// this should be a little more flexible in the future to handle a string & hash\n\tgetBaseline: function( origin, original ) {\n\t\tvar y, x;\n\t\tswitch ( origin[ 0 ] ) {\n\t\t\tcase \"top\": y = 0; break;\n\t\t\tcase \"middle\": y = 0.5; break;\n\t\t\tcase \"bottom\": y = 1; break;\n\t\t\tdefault: y = origin[ 0 ] / original.height;\n\t\t}\n\t\tswitch ( origin[ 1 ] ) {\n\t\t\tcase \"left\": x = 0; break;\n\t\t\tcase \"center\": x = 0.5; break;\n\t\t\tcase \"right\": x = 1; break;\n\t\t\tdefault: x = origin[ 1 ] / original.width;\n\t\t}\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t},\n\n\t// Wraps the element around a wrapper that copies position properties\n\tcreateWrapper: function( element ) {\n\n\t\t// if the element is already wrapped, return it\n\t\tif ( element.parent().is( \".ui-effects-wrapper\" )) {\n\t\t\treturn element.parent();\n\t\t}\n\n\t\t// wrap the element\n\t\tvar props = {\n\t\t\t\twidth: element.outerWidth(true),\n\t\t\t\theight: element.outerHeight(true),\n\t\t\t\t\"float\": element.css( \"float\" )\n\t\t\t},\n\t\t\twrapper = $( \"

\" )\n\t\t\t\t.addClass( \"ui-effects-wrapper\" )\n\t\t\t\t.css({\n\t\t\t\t\tfontSize: \"100%\",\n\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\tborder: \"none\",\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tpadding: 0\n\t\t\t\t}),\n\t\t\t// Store the size in case width/height are defined in % - Fixes #5245\n\t\t\tsize = {\n\t\t\t\twidth: element.width(),\n\t\t\t\theight: element.height()\n\t\t\t},\n\t\t\tactive = document.activeElement;\n\n\t\t// support: Firefox\n\t\t// Firefox incorrectly exposes anonymous content\n\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=561664\n\t\ttry {\n\t\t\tactive.id;\n\t\t} catch( e ) {\n\t\t\tactive = document.body;\n\t\t}\n\n\t\telement.wrap( wrapper );\n\n\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t$( active ).focus();\n\t\t}\n\n\t\twrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element\n\n\t\t// transfer positioning properties to the wrapper\n\t\tif ( element.css( \"position\" ) === \"static\" ) {\n\t\t\twrapper.css({ position: \"relative\" });\n\t\t\telement.css({ position: \"relative\" });\n\t\t} else {\n\t\t\t$.extend( props, {\n\t\t\t\tposition: element.css( \"position\" ),\n\t\t\t\tzIndex: element.css( \"z-index\" )\n\t\t\t});\n\t\t\t$.each([ \"top\", \"left\", \"bottom\", \"right\" ], function(i, pos) {\n\t\t\t\tprops[ pos ] = element.css( pos );\n\t\t\t\tif ( isNaN( parseInt( props[ pos ], 10 ) ) ) {\n\t\t\t\t\tprops[ pos ] = \"auto\";\n\t\t\t\t}\n\t\t\t});\n\t\t\telement.css({\n\t\t\t\tposition: \"relative\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\tright: \"auto\",\n\t\t\t\tbottom: \"auto\"\n\t\t\t});\n\t\t}\n\t\telement.css(size);\n\n\t\treturn wrapper.css( props ).show();\n\t},\n\n\tremoveWrapper: function( element ) {\n\t\tvar active = document.activeElement;\n\n\t\tif ( element.parent().is( \".ui-effects-wrapper\" ) ) {\n\t\t\telement.parent().replaceWith( element );\n\n\t\t\t// Fixes #7595 - Elements lose focus when wrapped.\n\t\t\tif ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {\n\t\t\t\t$( active ).focus();\n\t\t\t}\n\t\t}\n\n\n\t\treturn element;\n\t},\n\n\tsetTransition: function( element, list, factor, value ) {\n\t\tvalue = value || {};\n\t\t$.each( list, function( i, x ) {\n\t\t\tvar unit = element.cssUnit( x );\n\t\t\tif ( unit[ 0 ] > 0 ) {\n\t\t\t\tvalue[ x ] = unit[ 0 ] * factor + unit[ 1 ];\n\t\t\t}\n\t\t});\n\t\treturn value;\n\t}\n});\n\n// return an effect options object for the given parameters:\nfunction _normalizeArguments( effect, options, speed, callback ) {\n\n\t// allow passing all options as the first parameter\n\tif ( $.isPlainObject( effect ) ) {\n\t\toptions = effect;\n\t\teffect = effect.effect;\n\t}\n\n\t// convert to an object\n\teffect = { effect: effect };\n\n\t// catch (effect, null, ...)\n\tif ( options == null ) {\n\t\toptions = {};\n\t}\n\n\t// catch (effect, callback)\n\tif ( $.isFunction( options ) ) {\n\t\tcallback = options;\n\t\tspeed = null;\n\t\toptions = {};\n\t}\n\n\t// catch (effect, speed, ?)\n\tif ( typeof options === \"number\" || $.fx.speeds[ options ] ) {\n\t\tcallback = speed;\n\t\tspeed = options;\n\t\toptions = {};\n\t}\n\n\t// catch (effect, options, callback)\n\tif ( $.isFunction( speed ) ) {\n\t\tcallback = speed;\n\t\tspeed = null;\n\t}\n\n\t// add options to effect\n\tif ( options ) {\n\t\t$.extend( effect, options );\n\t}\n\n\tspeed = speed || options.duration;\n\teffect.duration = $.fx.off ? 0 :\n\t\ttypeof speed === \"number\" ? speed :\n\t\tspeed in $.fx.speeds ? $.fx.speeds[ speed ] :\n\t\t$.fx.speeds._default;\n\n\teffect.complete = callback || options.complete;\n\n\treturn effect;\n}\n\nfunction standardAnimationOption( option ) {\n\t// Valid standard speeds (nothing, number, named speed)\n\tif ( !option || typeof option === \"number\" || $.fx.speeds[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Invalid strings - treat as \"normal\" speed\n\tif ( typeof option === \"string\" && !$.effects.effect[ option ] ) {\n\t\treturn true;\n\t}\n\n\t// Complete callback\n\tif ( $.isFunction( option ) ) {\n\t\treturn true;\n\t}\n\n\t// Options hash (but not naming an effect)\n\tif ( typeof option === \"object\" && !option.effect ) {\n\t\treturn true;\n\t}\n\n\t// Didn't match any standard API\n\treturn false;\n}\n\n$.fn.extend({\n\teffect: function( /* effect, options, speed, callback */ ) {\n\t\tvar args = _normalizeArguments.apply( this, arguments ),\n\t\t\tmode = args.mode,\n\t\t\tqueue = args.queue,\n\t\t\teffectMethod = $.effects.effect[ args.effect ];\n\n\t\tif ( $.fx.off || !effectMethod ) {\n\t\t\t// delegate to the original method (e.g., .show()) if possible\n\t\t\tif ( mode ) {\n\t\t\t\treturn this[ mode ]( args.duration, args.complete );\n\t\t\t} else {\n\t\t\t\treturn this.each( function() {\n\t\t\t\t\tif ( args.complete ) {\n\t\t\t\t\t\targs.complete.call( this );\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction run( next ) {\n\t\t\tvar elem = $( this ),\n\t\t\t\tcomplete = args.complete,\n\t\t\t\tmode = args.mode;\n\n\t\t\tfunction done() {\n\t\t\t\tif ( $.isFunction( complete ) ) {\n\t\t\t\t\tcomplete.call( elem[0] );\n\t\t\t\t}\n\t\t\t\tif ( $.isFunction( next ) ) {\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the element already has the correct final state, delegate to\n\t\t\t// the core methods so the internal tracking of \"olddisplay\" works.\n\t\t\tif ( elem.is( \":hidden\" ) ? mode === \"hide\" : mode === \"show\" ) {\n\t\t\t\telem[ mode ]();\n\t\t\t\tdone();\n\t\t\t} else {\n\t\t\t\teffectMethod.call( elem[0], args, done );\n\t\t\t}\n\t\t}\n\n\t\treturn queue === false ? this.each( run ) : this.queue( queue || \"fx\", run );\n\t},\n\n\tshow: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"show\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.show ),\n\n\thide: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"hide\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.hide ),\n\n\ttoggle: (function( orig ) {\n\t\treturn function( option ) {\n\t\t\tif ( standardAnimationOption( option ) || typeof option === \"boolean\" ) {\n\t\t\t\treturn orig.apply( this, arguments );\n\t\t\t} else {\n\t\t\t\tvar args = _normalizeArguments.apply( this, arguments );\n\t\t\t\targs.mode = \"toggle\";\n\t\t\t\treturn this.effect.call( this, args );\n\t\t\t}\n\t\t};\n\t})( $.fn.toggle ),\n\n\t// helper functions\n\tcssUnit: function(key) {\n\t\tvar style = this.css( key ),\n\t\t\tval = [];\n\n\t\t$.each( [ \"em\", \"px\", \"%\", \"pt\" ], function( i, unit ) {\n\t\t\tif ( style.indexOf( unit ) > 0 ) {\n\t\t\t\tval = [ parseFloat( style ), unit ];\n\t\t\t}\n\t\t});\n\t\treturn val;\n\t}\n});\n\n})();\n\n/******************************************************************************/\n/*********************************** EASING ***********************************/\n/******************************************************************************/\n\n(function() {\n\n// based on easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\nvar baseEasings = {};\n\n$.each( [ \"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\" ], function( i, name ) {\n\tbaseEasings[ name ] = function( p ) {\n\t\treturn Math.pow( p, i + 2 );\n\t};\n});\n\n$.extend( baseEasings, {\n\tSine: function ( p ) {\n\t\treturn 1 - Math.cos( p * Math.PI / 2 );\n\t},\n\tCirc: function ( p ) {\n\t\treturn 1 - Math.sqrt( 1 - p * p );\n\t},\n\tElastic: function( p ) {\n\t\treturn p === 0 || p === 1 ? p :\n\t\t\t-Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 );\n\t},\n\tBack: function( p ) {\n\t\treturn p * p * ( 3 * p - 2 );\n\t},\n\tBounce: function ( p ) {\n\t\tvar pow2,\n\t\t\tbounce = 4;\n\n\t\twhile ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}\n\t\treturn 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );\n\t}\n});\n\n$.each( baseEasings, function( name, easeIn ) {\n\t$.easing[ \"easeIn\" + name ] = easeIn;\n\t$.easing[ \"easeOut\" + name ] = function( p ) {\n\t\treturn 1 - easeIn( 1 - p );\n\t};\n\t$.easing[ \"easeInOut\" + name ] = function( p ) {\n\t\treturn p < 0.5 ?\n\t\t\teaseIn( p * 2 ) / 2 :\n\t\t\t1 - easeIn( p * -2 + 2 ) / 2;\n\t};\n});\n\n})();\n\n})(jQuery);\n\n(function( $, undefined ) {\n\nvar uid = 0,\n\thideProps = {},\n\tshowProps = {};\n\nhideProps.height = hideProps.paddingTop = hideProps.paddingBottom =\n\thideProps.borderTopWidth = hideProps.borderBottomWidth = \"hide\";\nshowProps.height = showProps.paddingTop = showProps.paddingBottom =\n\tshowProps.borderTopWidth = showProps.borderBottomWidth = \"show\";\n\n$.widget( \"ui.accordion\", {\n\tversion: \"1.10.3\",\n\toptions: {\n\t\tactive: 0,\n\t\tanimate: {},\n\t\tcollapsible: false,\n\t\tevent: \"click\",\n\t\theader: \"> li > :first-child,> :not(li):even\",\n\t\theightStyle: \"auto\",\n\t\ticons: {\n\t\t\tactiveHeader: \"ui-icon-triangle-1-s\",\n\t\t\theader: \"ui-icon-triangle-1-e\"\n\t\t},\n\n\t\t// callbacks\n\t\tactivate: null,\n\t\tbeforeActivate: null\n\t},\n\n\t_create: function() {\n\t\tvar options = this.options;\n\t\tthis.prevShow = this.prevHide = $();\n\t\tthis.element.addClass( \"ui-accordion ui-widget ui-helper-reset\" )\n\t\t\t// ARIA\n\t\t\t.attr( \"role\", \"tablist\" );\n\n\t\t// don't allow collapsible: false and active: false / null\n\t\tif ( !options.collapsible && (options.active === false || options.active == null) ) {\n\t\t\toptions.active = 0;\n\t\t}\n\n\t\tthis._processPanels();\n\t\t// handle negative values\n\t\tif ( options.active < 0 ) {\n\t\t\toptions.active += this.headers.length;\n\t\t}\n\t\tthis._refresh();\n\t},\n\n\t_getCreateEventData: function() {\n\t\treturn {\n\t\t\theader: this.active,\n\t\t\tpanel: !this.active.length ? $() : this.active.next(),\n\t\t\tcontent: !this.active.length ? $() : this.active.next()\n\t\t};\n\t},\n\n\t_createIcons: function() {\n\t\tvar icons = this.options.icons;\n\t\tif ( icons ) {\n\t\t\t$( \"\" )\n\t\t\t\t.addClass( \"ui-accordion-header-icon ui-icon \" + icons.header )\n\t\t\t\t.prependTo( this.headers );\n\t\t\tthis.active.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.removeClass( icons.header )\n\t\t\t\t.addClass( icons.activeHeader );\n\t\t\tthis.headers.addClass( \"ui-accordion-icons\" );\n\t\t}\n\t},\n\n\t_destroyIcons: function() {\n\t\tthis.headers\n\t\t\t.removeClass( \"ui-accordion-icons\" )\n\t\t\t.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.remove();\n\t},\n\n\t_destroy: function() {\n\t\tvar contents;\n\n\t\t// clean up main element\n\t\tthis.element\n\t\t\t.removeClass( \"ui-accordion ui-widget ui-helper-reset\" )\n\t\t\t.removeAttr( \"role\" );\n\n\t\t// clean up headers\n\t\tthis.headers\n\t\t\t.removeClass( \"ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-selected\" )\n\t\t\t.removeAttr( \"aria-controls\" )\n\t\t\t.removeAttr( \"tabIndex\" )\n\t\t\t.each(function() {\n\t\t\t\tif ( /^ui-accordion/.test( this.id ) ) {\n\t\t\t\t\tthis.removeAttribute( \"id\" );\n\t\t\t\t}\n\t\t\t});\n\t\tthis._destroyIcons();\n\n\t\t// clean up content panels\n\t\tcontents = this.headers.next()\n\t\t\t.css( \"display\", \"\" )\n\t\t\t.removeAttr( \"role\" )\n\t\t\t.removeAttr( \"aria-expanded\" )\n\t\t\t.removeAttr( \"aria-hidden\" )\n\t\t\t.removeAttr( \"aria-labelledby\" )\n\t\t\t.removeClass( \"ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled\" )\n\t\t\t.each(function() {\n\t\t\t\tif ( /^ui-accordion/.test( this.id ) ) {\n\t\t\t\t\tthis.removeAttribute( \"id\" );\n\t\t\t\t}\n\t\t\t});\n\t\tif ( this.options.heightStyle !== \"content\" ) {\n\t\t\tcontents.css( \"height\", \"\" );\n\t\t}\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"active\" ) {\n\t\t\t// _activate() will handle invalid values and update this.options\n\t\t\tthis._activate( value );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === \"event\" ) {\n\t\t\tif ( this.options.event ) {\n\t\t\t\tthis._off( this.headers, this.options.event );\n\t\t\t}\n\t\t\tthis._setupEvents( value );\n\t\t}\n\n\t\tthis._super( key, value );\n\n\t\t// setting collapsible: false while collapsed; open first panel\n\t\tif ( key === \"collapsible\" && !value && this.options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t}\n\n\t\tif ( key === \"icons\" ) {\n\t\t\tthis._destroyIcons();\n\t\t\tif ( value ) {\n\t\t\t\tthis._createIcons();\n\t\t\t}\n\t\t}\n\n\t\t// #5332 - opacity doesn't cascade to positioned elements in IE\n\t\t// so we need to add the disabled class to the headers and panels\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.headers.add( this.headers.next() )\n\t\t\t\t.toggleClass( \"ui-state-disabled\", !!value );\n\t\t}\n\t},\n\n\t_keydown: function( event ) {\n\t\t/*jshint maxcomplexity:15*/\n\t\tif ( event.altKey || event.ctrlKey ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar keyCode = $.ui.keyCode,\n\t\t\tlength = this.headers.length,\n\t\t\tcurrentIndex = this.headers.index( event.target ),\n\t\t\ttoFocus = false;\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase keyCode.RIGHT:\n\t\t\tcase keyCode.DOWN:\n\t\t\t\ttoFocus = this.headers[ ( currentIndex + 1 ) % length ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.LEFT:\n\t\t\tcase keyCode.UP:\n\t\t\t\ttoFocus = this.headers[ ( currentIndex - 1 + length ) % length ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.SPACE:\n\t\t\tcase keyCode.ENTER:\n\t\t\t\tthis._eventHandler( event );\n\t\t\t\tbreak;\n\t\t\tcase keyCode.HOME:\n\t\t\t\ttoFocus = this.headers[ 0 ];\n\t\t\t\tbreak;\n\t\t\tcase keyCode.END:\n\t\t\t\ttoFocus = this.headers[ length - 1 ];\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( toFocus ) {\n\t\t\t$( event.target ).attr( \"tabIndex\", -1 );\n\t\t\t$( toFocus ).attr( \"tabIndex\", 0 );\n\t\t\ttoFocus.focus();\n\t\t\tevent.preventDefault();\n\t\t}\n\t},\n\n\t_panelKeyDown : function( event ) {\n\t\tif ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {\n\t\t\t$( event.currentTarget ).prev().focus();\n\t\t}\n\t},\n\n\trefresh: function() {\n\t\tvar options = this.options;\n\t\tthis._processPanels();\n\n\t\t// was collapsed or no panel\n\t\tif ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) {\n\t\t\toptions.active = false;\n\t\t\tthis.active = $();\n\t\t// active false only when collapsible is true\n\t\t} else if ( options.active === false ) {\n\t\t\tthis._activate( 0 );\n\t\t// was active, but active panel is gone\n\t\t} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {\n\t\t\t// all remaining panel are disabled\n\t\t\tif ( this.headers.length === this.headers.find(\".ui-state-disabled\").length ) {\n\t\t\t\toptions.active = false;\n\t\t\t\tthis.active = $();\n\t\t\t// activate previous panel\n\t\t\t} else {\n\t\t\t\tthis._activate( Math.max( 0, options.active - 1 ) );\n\t\t\t}\n\t\t// was active, active panel still exists\n\t\t} else {\n\t\t\t// make sure active index is correct\n\t\t\toptions.active = this.headers.index( this.active );\n\t\t}\n\n\t\tthis._destroyIcons();\n\n\t\tthis._refresh();\n\t},\n\n\t_processPanels: function() {\n\t\tthis.headers = this.element.find( this.options.header )\n\t\t\t.addClass( \"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all\" );\n\n\t\tthis.headers.next()\n\t\t\t.addClass( \"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom\" )\n\t\t\t.filter(\":not(.ui-accordion-content-active)\")\n\t\t\t.hide();\n\t},\n\n\t_refresh: function() {\n\t\tvar maxHeight,\n\t\t\toptions = this.options,\n\t\t\theightStyle = options.heightStyle,\n\t\t\tparent = this.element.parent(),\n\t\t\taccordionId = this.accordionId = \"ui-accordion-\" +\n\t\t\t\t(this.element.attr( \"id\" ) || ++uid);\n\n\t\tthis.active = this._findActive( options.active )\n\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" )\n\t\t\t.removeClass( \"ui-corner-all\" );\n\t\tthis.active.next()\n\t\t\t.addClass( \"ui-accordion-content-active\" )\n\t\t\t.show();\n\n\t\tthis.headers\n\t\t\t.attr( \"role\", \"tab\" )\n\t\t\t.each(function( i ) {\n\t\t\t\tvar header = $( this ),\n\t\t\t\t\theaderId = header.attr( \"id\" ),\n\t\t\t\t\tpanel = header.next(),\n\t\t\t\t\tpanelId = panel.attr( \"id\" );\n\t\t\t\tif ( !headerId ) {\n\t\t\t\t\theaderId = accordionId + \"-header-\" + i;\n\t\t\t\t\theader.attr( \"id\", headerId );\n\t\t\t\t}\n\t\t\t\tif ( !panelId ) {\n\t\t\t\t\tpanelId = accordionId + \"-panel-\" + i;\n\t\t\t\t\tpanel.attr( \"id\", panelId );\n\t\t\t\t}\n\t\t\t\theader.attr( \"aria-controls\", panelId );\n\t\t\t\tpanel.attr( \"aria-labelledby\", headerId );\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr( \"role\", \"tabpanel\" );\n\n\t\tthis.headers\n\t\t\t.not( this.active )\n\t\t\t.attr({\n\t\t\t\t\"aria-selected\": \"false\",\n\t\t\t\ttabIndex: -1\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\t\t\"aria-hidden\": \"true\"\n\t\t\t\t})\n\t\t\t\t.hide();\n\n\t\t// make sure at least one header is in the tab order\n\t\tif ( !this.active.length ) {\n\t\t\tthis.headers.eq( 0 ).attr( \"tabIndex\", 0 );\n\t\t} else {\n\t\t\tthis.active.attr({\n\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\ttabIndex: 0\n\t\t\t})\n\t\t\t.next()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t\t});\n\t\t}\n\n\t\tthis._createIcons();\n\n\t\tthis._setupEvents( options.event );\n\n\t\tif ( heightStyle === \"fill\" ) {\n\t\t\tmaxHeight = parent.height();\n\t\t\tthis.element.siblings( \":visible\" ).each(function() {\n\t\t\t\tvar elem = $( this ),\n\t\t\t\t\tposition = elem.css( \"position\" );\n\n\t\t\t\tif ( position === \"absolute\" || position === \"fixed\" ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmaxHeight -= elem.outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.headers.each(function() {\n\t\t\t\tmaxHeight -= $( this ).outerHeight( true );\n\t\t\t});\n\n\t\t\tthis.headers.next()\n\t\t\t\t.each(function() {\n\t\t\t\t\t$( this ).height( Math.max( 0, maxHeight -\n\t\t\t\t\t\t$( this ).innerHeight() + $( this ).height() ) );\n\t\t\t\t})\n\t\t\t\t.css( \"overflow\", \"auto\" );\n\t\t} else if ( heightStyle === \"auto\" ) {\n\t\t\tmaxHeight = 0;\n\t\t\tthis.headers.next()\n\t\t\t\t.each(function() {\n\t\t\t\t\tmaxHeight = Math.max( maxHeight, $( this ).css( \"height\", \"\" ).height() );\n\t\t\t\t})\n\t\t\t\t.height( maxHeight );\n\t\t}\n\t},\n\n\t_activate: function( index ) {\n\t\tvar active = this._findActive( index )[ 0 ];\n\n\t\t// trying to activate the already active panel\n\t\tif ( active === this.active[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// trying to collapse, simulate a click on the currently active header\n\t\tactive = active || this.active[ 0 ];\n\n\t\tthis._eventHandler({\n\t\t\ttarget: active,\n\t\t\tcurrentTarget: active,\n\t\t\tpreventDefault: $.noop\n\t\t});\n\t},\n\n\t_findActive: function( selector ) {\n\t\treturn typeof selector === \"number\" ? this.headers.eq( selector ) : $();\n\t},\n\n\t_setupEvents: function( event ) {\n\t\tvar events = {\n\t\t\tkeydown: \"_keydown\"\n\t\t};\n\t\tif ( event ) {\n\t\t\t$.each( event.split(\" \"), function( index, eventName ) {\n\t\t\t\tevents[ eventName ] = \"_eventHandler\";\n\t\t\t});\n\t\t}\n\n\t\tthis._off( this.headers.add( this.headers.next() ) );\n\t\tthis._on( this.headers, events );\n\t\tthis._on( this.headers.next(), { keydown: \"_panelKeyDown\" });\n\t\tthis._hoverable( this.headers );\n\t\tthis._focusable( this.headers );\n\t},\n\n\t_eventHandler: function( event ) {\n\t\tvar options = this.options,\n\t\t\tactive = this.active,\n\t\t\tclicked = $( event.currentTarget ),\n\t\t\tclickedIsActive = clicked[ 0 ] === active[ 0 ],\n\t\t\tcollapsing = clickedIsActive && options.collapsible,\n\t\t\ttoShow = collapsing ? $() : clicked.next(),\n\t\t\ttoHide = active.next(),\n\t\t\teventData = {\n\t\t\t\toldHeader: active,\n\t\t\t\toldPanel: toHide,\n\t\t\t\tnewHeader: collapsing ? $() : clicked,\n\t\t\t\tnewPanel: toShow\n\t\t\t};\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\t\t\t\t// click on active header, but not collapsible\n\t\t\t\t( clickedIsActive && !options.collapsible ) ||\n\t\t\t\t// allow canceling activation\n\t\t\t\t( this._trigger( \"beforeActivate\", event, eventData ) === false ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\toptions.active = collapsing ? false : this.headers.index( clicked );\n\n\t\t// when the call to ._toggle() comes after the class changes\n\t\t// it causes a very odd bug in IE 8 (see #6720)\n\t\tthis.active = clickedIsActive ? $() : clicked;\n\t\tthis._toggle( eventData );\n\n\t\t// switch classes\n\t\t// corner classes on the previously active header stay after the animation\n\t\tactive.removeClass( \"ui-accordion-header-active ui-state-active\" );\n\t\tif ( options.icons ) {\n\t\t\tactive.children( \".ui-accordion-header-icon\" )\n\t\t\t\t.removeClass( options.icons.activeHeader )\n\t\t\t\t.addClass( options.icons.header );\n\t\t}\n\n\t\tif ( !clickedIsActive ) {\n\t\t\tclicked\n\t\t\t\t.removeClass( \"ui-corner-all\" )\n\t\t\t\t.addClass( \"ui-accordion-header-active ui-state-active ui-corner-top\" );\n\t\t\tif ( options.icons ) {\n\t\t\t\tclicked.children( \".ui-accordion-header-icon\" )\n\t\t\t\t\t.removeClass( options.icons.header )\n\t\t\t\t\t.addClass( options.icons.activeHeader );\n\t\t\t}\n\n\t\t\tclicked\n\t\t\t\t.next()\n\t\t\t\t.addClass( \"ui-accordion-content-active\" );\n\t\t}\n\t},\n\n\t_toggle: function( data ) {\n\t\tvar toShow = data.newPanel,\n\t\t\ttoHide = this.prevShow.length ? this.prevShow : data.oldPanel;\n\n\t\t// handle activating a panel during the animation for another activation\n\t\tthis.prevShow.add( this.prevHide ).stop( true, true );\n\t\tthis.prevShow = toShow;\n\t\tthis.prevHide = toHide;\n\n\t\tif ( this.options.animate ) {\n\t\t\tthis._animate( toShow, toHide, data );\n\t\t} else {\n\t\t\ttoHide.hide();\n\t\t\ttoShow.show();\n\t\t\tthis._toggleComplete( data );\n\t\t}\n\n\t\ttoHide.attr({\n\t\t\t\"aria-expanded\": \"false\",\n\t\t\t\"aria-hidden\": \"true\"\n\t\t});\n\t\ttoHide.prev().attr( \"aria-selected\", \"false\" );\n\t\t// if we're switching panels, remove the old header from the tab order\n\t\t// if we're opening from collapsed state, remove the previous header from the tab order\n\t\t// if we're collapsing, then keep the collapsing header in the tab order\n\t\tif ( toShow.length && toHide.length ) {\n\t\t\ttoHide.prev().attr( \"tabIndex\", -1 );\n\t\t} else if ( toShow.length ) {\n\t\t\tthis.headers.filter(function() {\n\t\t\t\treturn $( this ).attr( \"tabIndex\" ) === 0;\n\t\t\t})\n\t\t\t.attr( \"tabIndex\", -1 );\n\t\t}\n\n\t\ttoShow\n\t\t\t.attr({\n\t\t\t\t\"aria-expanded\": \"true\",\n\t\t\t\t\"aria-hidden\": \"false\"\n\t\t\t})\n\t\t\t.prev()\n\t\t\t\t.attr({\n\t\t\t\t\t\"aria-selected\": \"true\",\n\t\t\t\t\ttabIndex: 0\n\t\t\t\t});\n\t},\n\n\t_animate: function( toShow, toHide, data ) {\n\t\tvar total, easing, duration,\n\t\t\tthat = this,\n\t\t\tadjust = 0,\n\t\t\tdown = toShow.length &&\n\t\t\t\t( !toHide.length || ( toShow.index() < toHide.index() ) ),\n\t\t\tanimate = this.options.animate || {},\n\t\t\toptions = down && animate.down || animate,\n\t\t\tcomplete = function() {\n\t\t\t\tthat._toggleComplete( data );\n\t\t\t};\n\n\t\tif ( typeof options === \"number\" ) {\n\t\t\tduration = options;\n\t\t}\n\t\tif ( typeof options === \"string\" ) {\n\t\t\teasing = options;\n\t\t}\n\t\t// fall back from options to animation in case of partial down settings\n\t\teasing = easing || options.easing || animate.easing;\n\t\tduration = duration || options.duration || animate.duration;\n\n\t\tif ( !toHide.length ) {\n\t\t\treturn toShow.animate( showProps, duration, easing, complete );\n\t\t}\n\t\tif ( !toShow.length ) {\n\t\t\treturn toHide.animate( hideProps, duration, easing, complete );\n\t\t}\n\n\t\ttotal = toShow.show().outerHeight();\n\t\ttoHide.animate( hideProps, {\n\t\t\tduration: duration,\n\t\t\teasing: easing,\n\t\t\tstep: function( now, fx ) {\n\t\t\t\tfx.now = Math.round( now );\n\t\t\t}\n\t\t});\n\t\ttoShow\n\t\t\t.hide()\n\t\t\t.animate( showProps, {\n\t\t\t\tduration: duration,\n\t\t\t\teasing: easing,\n\t\t\t\tcomplete: complete,\n\t\t\t\tstep: function( now, fx ) {\n\t\t\t\t\tfx.now = Math.round( now );\n\t\t\t\t\tif ( fx.prop !== \"height\" ) {\n\t\t\t\t\t\tadjust += fx.now;\n\t\t\t\t\t} else if ( that.options.heightStyle !== \"content\" ) {\n\t\t\t\t\t\tfx.now = Math.round( total - toHide.outerHeight() - adjust );\n\t\t\t\t\t\tadjust = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t},\n\n\t_toggleComplete: function( data ) {\n\t\tvar toHide = data.oldPanel;\n\n\t\ttoHide\n\t\t\t.removeClass( \"ui-accordion-content-active\" )\n\t\t\t.prev()\n\t\t\t\t.removeClass( \"ui-corner-top\" )\n\t\t\t\t.addClass( \"ui-corner-all\" );\n\n\t\t// Work around for rendering bug in IE (#5421)\n\t\tif ( toHide.length ) {\n\t\t\ttoHide.parent()[0].className = toHide.parent()[0].className;\n\t\t}\n\n\t\tthis._trigger( \"activate\", null, data );\n\t}\n});\n\n})( jQuery );\n\n(function( $, undefined ) {\n\n// used to prevent race conditions with remote data sources\nvar requestIndex = 0;\n\n$.widget( \"ui.autocomplete\", {\n\tversion: \"1.10.3\",\n\tdefaultElement: \"\",\n\toptions: {\n\t\tappendTo: null,\n\t\tautoFocus: false,\n\t\tdelay: 300,\n\t\tminLength: 1,\n\t\tposition: {\n\t\t\tmy: \"left top\",\n\t\t\tat: \"left bottom\",\n\t\t\tcollision: \"none\"\n\t\t},\n\t\tsource: null,\n\n\t\t// callbacks\n\t\tchange: null,\n\t\tclose: null,\n\t\tfocus: null,\n\t\topen: null,\n\t\tresponse: null,\n\t\tsearch: null,\n\t\tselect: null\n\t},\n\n\tpending: 0,\n\n\t_create: function() {\n\t\t// Some browsers only repeat keydown events, not keypress events,\n\t\t// so we use the suppressKeyPress flag to determine if we've already\n\t\t// handled the keydown event. #7269\n\t\t// Unfortunately the code for & in keypress is the same as the up arrow,\n\t\t// so we use the suppressKeyPressRepeat flag to avoid handling keypress\n\t\t// events when we know the keydown event was used to modify the\n\t\t// search term. #7799\n\t\tvar suppressKeyPress, suppressKeyPressRepeat, suppressInput,\n\t\t\tnodeName = this.element[0].nodeName.toLowerCase(),\n\t\t\tisTextarea = nodeName === \"textarea\",\n\t\t\tisInput = nodeName === \"input\";\n\n\t\tthis.isMultiLine =\n\t\t\t// Textareas are always multi-line\n\t\t\tisTextarea ? true :\n\t\t\t// Inputs are always single-line, even if inside a contentEditable element\n\t\t\t// IE also treats inputs as contentEditable\n\t\t\tisInput ? false :\n\t\t\t// All other element types are determined by whether or not they're contentEditable\n\t\t\tthis.element.prop( \"isContentEditable\" );\n\n\t\tthis.valueMethod = this.element[ isTextarea || isInput ? \"val\" : \"text\" ];\n\t\tthis.isNewMenu = true;\n\n\t\tthis.element\n\t\t\t.addClass( \"ui-autocomplete-input\" )\n\t\t\t.attr( \"autocomplete\", \"off\" );\n\n\t\tthis._on( this.element, {\n\t\t\tkeydown: function( event ) {\n\t\t\t\t/*jshint maxcomplexity:15*/\n\t\t\t\tif ( this.element.prop( \"readOnly\" ) ) {\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tsuppressInput = true;\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsuppressKeyPress = false;\n\t\t\t\tsuppressInput = false;\n\t\t\t\tsuppressKeyPressRepeat = false;\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ENTER:\n\t\t\t\tcase keyCode.NUMPAD_ENTER:\n\t\t\t\t\t// when menu is open and has focus\n\t\t\t\t\tif ( this.menu.active ) {\n\t\t\t\t\t\t// #6055 - Opera still allows the keypress to occur\n\t\t\t\t\t\t// which causes forms to submit\n\t\t\t\t\t\tsuppressKeyPress = true;\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.TAB:\n\t\t\t\t\tif ( this.menu.active ) {\n\t\t\t\t\t\tthis.menu.select( event );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.ESCAPE:\n\t\t\t\t\tif ( this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tthis._value( this.term );\n\t\t\t\t\t\tthis.close( event );\n\t\t\t\t\t\t// Different browsers have different default behavior for escape\n\t\t\t\t\t\t// Single press can mean undo or clear\n\t\t\t\t\t\t// Double press in IE means clear the whole form\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tsuppressKeyPressRepeat = true;\n\t\t\t\t\t// search timeout should be triggered before the input value is changed\n\t\t\t\t\tthis._searchTimeout( event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tkeypress: function( event ) {\n\t\t\t\tif ( suppressKeyPress ) {\n\t\t\t\t\tsuppressKeyPress = false;\n\t\t\t\t\tif ( !this.isMultiLine || this.menu.element.is( \":visible\" ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( suppressKeyPressRepeat ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// replicate some key handlers to allow them to repeat in Firefox and Opera\n\t\t\t\tvar keyCode = $.ui.keyCode;\n\t\t\t\tswitch( event.keyCode ) {\n\t\t\t\tcase keyCode.PAGE_UP:\n\t\t\t\t\tthis._move( \"previousPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.PAGE_DOWN:\n\t\t\t\t\tthis._move( \"nextPage\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.UP:\n\t\t\t\t\tthis._keyEvent( \"previous\", event );\n\t\t\t\t\tbreak;\n\t\t\t\tcase keyCode.DOWN:\n\t\t\t\t\tthis._keyEvent( \"next\", event );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t},\n\t\t\tinput: function( event ) {\n\t\t\t\tif ( suppressInput ) {\n\t\t\t\t\tsuppressInput = false;\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis._searchTimeout( event );\n\t\t\t},\n\t\t\tfocus: function() {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.previous = this._value();\n\t\t\t},\n\t\t\tblur: function( event ) {\n\t\t\t\tif ( this.cancelBlur ) {\n\t\t\t\t\tdelete this.cancelBlur;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tclearTimeout( this.searching );\n\t\t\t\tthis.close( event );\n\t\t\t\tthis._change( event );\n\t\t\t}\n\t\t});\n\n\t\tthis._initSource();\n\t\tthis.menu = $( \"