diff options
| author | 2012-09-16 21:45:10 +0200 | |
|---|---|---|
| committer | 2012-09-16 21:45:10 +0200 | |
| commit | 6a8303b004e1976739371431aa7358c672ad7313 (patch) | |
| tree | 108da54419661af1cd6edc860ec6494be61e7051 /module/web/static/js/libs | |
| parent | higher low speed time, easier way to set curl options (diff) | |
| download | pyload-6a8303b004e1976739371431aa7358c672ad7313.tar.xz | |
added bootstrap
Diffstat (limited to 'module/web/static/js/libs')
| -rw-r--r-- | module/web/static/js/libs/bootstrap-2.1.1.js | 2027 | ||||
| -rw-r--r-- | module/web/static/js/libs/jquery.qtip.min.js | 2 | 
2 files changed, 2027 insertions, 2 deletions
| diff --git a/module/web/static/js/libs/bootstrap-2.1.1.js b/module/web/static/js/libs/bootstrap-2.1.1.js new file mode 100644 index 000000000..f73fcb8e7 --- /dev/null +++ b/module/web/static/js/libs/bootstrap-2.1.1.js @@ -0,0 +1,2027 @@ +/* =================================================== + * bootstrap-transition.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + +  $(function () { + +    "use strict"; // jshint ;_; + + +    /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) +     * ======================================================= */ + +    $.support.transition = (function () { + +      var transitionEnd = (function () { + +        var el = document.createElement('bootstrap') +          , transEndEventNames = { +               'WebkitTransition' : 'webkitTransitionEnd' +            ,  'MozTransition'    : 'transitionend' +            ,  'OTransition'      : 'oTransitionEnd otransitionend' +            ,  'transition'       : 'transitionend' +            } +          , name + +        for (name in transEndEventNames){ +          if (el.style[name] !== undefined) { +            return transEndEventNames[name] +          } +        } + +      }()) + +      return transitionEnd && { +        end: transitionEnd +      } + +    })() + +  }) + +}(window.jQuery);/* ========================================================== + * bootstrap-alert.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION +  * ====================== */ + +  var dismiss = '[data-dismiss="alert"]' +    , Alert = function (el) { +        $(el).on('click', dismiss, this.close) +      } + +  Alert.prototype.close = function (e) { +    var $this = $(this) +      , selector = $this.attr('data-target') +      , $parent + +    if (!selector) { +      selector = $this.attr('href') +      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 +    } + +    $parent = $(selector) + +    e && e.preventDefault() + +    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + +    $parent.trigger(e = $.Event('close')) + +    if (e.isDefaultPrevented()) return + +    $parent.removeClass('in') + +    function removeElement() { +      $parent +        .trigger('closed') +        .remove() +    } + +    $.support.transition && $parent.hasClass('fade') ? +      $parent.on($.support.transition.end, removeElement) : +      removeElement() +  } + + + /* ALERT PLUGIN DEFINITION +  * ======================= */ + +  $.fn.alert = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('alert') +      if (!data) $this.data('alert', (data = new Alert(this))) +      if (typeof option == 'string') data[option].call($this) +    }) +  } + +  $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API +  * ============== */ + +  $(function () { +    $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) +  }) + +}(window.jQuery);/* ============================================================ + * bootstrap-button.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION +  * ============================== */ + +  var Button = function (element, options) { +    this.$element = $(element) +    this.options = $.extend({}, $.fn.button.defaults, options) +  } + +  Button.prototype.setState = function (state) { +    var d = 'disabled' +      , $el = this.$element +      , data = $el.data() +      , val = $el.is('input') ? 'val' : 'html' + +    state = state + 'Text' +    data.resetText || $el.data('resetText', $el[val]()) + +    $el[val](data[state] || this.options[state]) + +    // push to event loop to allow forms to submit +    setTimeout(function () { +      state == 'loadingText' ? +        $el.addClass(d).attr(d, d) : +        $el.removeClass(d).removeAttr(d) +    }, 0) +  } + +  Button.prototype.toggle = function () { +    var $parent = this.$element.closest('[data-toggle="buttons-radio"]') + +    $parent && $parent +      .find('.active') +      .removeClass('active') + +    this.$element.toggleClass('active') +  } + + + /* BUTTON PLUGIN DEFINITION +  * ======================== */ + +  $.fn.button = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('button') +        , options = typeof option == 'object' && option +      if (!data) $this.data('button', (data = new Button(this, options))) +      if (option == 'toggle') data.toggle() +      else if (option) data.setState(option) +    }) +  } + +  $.fn.button.defaults = { +    loadingText: 'loading...' +  } + +  $.fn.button.Constructor = Button + + + /* BUTTON DATA-API +  * =============== */ + +  $(function () { +    $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { +      var $btn = $(e.target) +      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') +      $btn.button('toggle') +    }) +  }) + +}(window.jQuery);/* ========================================================== + * bootstrap-carousel.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION +  * ========================= */ + +  var Carousel = function (element, options) { +    this.$element = $(element) +    this.options = options +    this.options.slide && this.slide(this.options.slide) +    this.options.pause == 'hover' && this.$element +      .on('mouseenter', $.proxy(this.pause, this)) +      .on('mouseleave', $.proxy(this.cycle, this)) +  } + +  Carousel.prototype = { + +    cycle: function (e) { +      if (!e) this.paused = false +      this.options.interval +        && !this.paused +        && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) +      return this +    } + +  , to: function (pos) { +      var $active = this.$element.find('.item.active') +        , children = $active.parent().children() +        , activePos = children.index($active) +        , that = this + +      if (pos > (children.length - 1) || pos < 0) return + +      if (this.sliding) { +        return this.$element.one('slid', function () { +          that.to(pos) +        }) +      } + +      if (activePos == pos) { +        return this.pause().cycle() +      } + +      return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) +    } + +  , pause: function (e) { +      if (!e) this.paused = true +      if (this.$element.find('.next, .prev').length && $.support.transition.end) { +        this.$element.trigger($.support.transition.end) +        this.cycle() +      } +      clearInterval(this.interval) +      this.interval = null +      return this +    } + +  , next: function () { +      if (this.sliding) return +      return this.slide('next') +    } + +  , prev: function () { +      if (this.sliding) return +      return this.slide('prev') +    } + +  , slide: function (type, next) { +      var $active = this.$element.find('.item.active') +        , $next = next || $active[type]() +        , isCycling = this.interval +        , direction = type == 'next' ? 'left' : 'right' +        , fallback  = type == 'next' ? 'first' : 'last' +        , that = this +        , e = $.Event('slide', { +            relatedTarget: $next[0] +          }) + +      this.sliding = true + +      isCycling && this.pause() + +      $next = $next.length ? $next : this.$element.find('.item')[fallback]() + +      if ($next.hasClass('active')) return + +      if ($.support.transition && this.$element.hasClass('slide')) { +        this.$element.trigger(e) +        if (e.isDefaultPrevented()) return +        $next.addClass(type) +        $next[0].offsetWidth // force reflow +        $active.addClass(direction) +        $next.addClass(direction) +        this.$element.one($.support.transition.end, function () { +          $next.removeClass([type, direction].join(' ')).addClass('active') +          $active.removeClass(['active', direction].join(' ')) +          that.sliding = false +          setTimeout(function () { that.$element.trigger('slid') }, 0) +        }) +      } else { +        this.$element.trigger(e) +        if (e.isDefaultPrevented()) return +        $active.removeClass('active') +        $next.addClass('active') +        this.sliding = false +        this.$element.trigger('slid') +      } + +      isCycling && this.cycle() + +      return this +    } + +  } + + + /* CAROUSEL PLUGIN DEFINITION +  * ========================== */ + +  $.fn.carousel = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('carousel') +        , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) +        , action = typeof option == 'string' ? option : options.slide +      if (!data) $this.data('carousel', (data = new Carousel(this, options))) +      if (typeof option == 'number') data.to(option) +      else if (action) data[action]() +      else if (options.interval) data.cycle() +    }) +  } + +  $.fn.carousel.defaults = { +    interval: 5000 +  , pause: 'hover' +  } + +  $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API +  * ================= */ + +  $(function () { +    $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { +      var $this = $(this), href +        , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 +        , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) +      $target.carousel(options) +      e.preventDefault() +    }) +  }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION +  * ================================ */ + +  var Collapse = function (element, options) { +    this.$element = $(element) +    this.options = $.extend({}, $.fn.collapse.defaults, options) + +    if (this.options.parent) { +      this.$parent = $(this.options.parent) +    } + +    this.options.toggle && this.toggle() +  } + +  Collapse.prototype = { + +    constructor: Collapse + +  , dimension: function () { +      var hasWidth = this.$element.hasClass('width') +      return hasWidth ? 'width' : 'height' +    } + +  , show: function () { +      var dimension +        , scroll +        , actives +        , hasData + +      if (this.transitioning) return + +      dimension = this.dimension() +      scroll = $.camelCase(['scroll', dimension].join('-')) +      actives = this.$parent && this.$parent.find('> .accordion-group > .in') + +      if (actives && actives.length) { +        hasData = actives.data('collapse') +        if (hasData && hasData.transitioning) return +        actives.collapse('hide') +        hasData || actives.data('collapse', null) +      } + +      this.$element[dimension](0) +      this.transition('addClass', $.Event('show'), 'shown') +      $.support.transition && this.$element[dimension](this.$element[0][scroll]) +    } + +  , hide: function () { +      var dimension +      if (this.transitioning) return +      dimension = this.dimension() +      this.reset(this.$element[dimension]()) +      this.transition('removeClass', $.Event('hide'), 'hidden') +      this.$element[dimension](0) +    } + +  , reset: function (size) { +      var dimension = this.dimension() + +      this.$element +        .removeClass('collapse') +        [dimension](size || 'auto') +        [0].offsetWidth + +      this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + +      return this +    } + +  , transition: function (method, startEvent, completeEvent) { +      var that = this +        , complete = function () { +            if (startEvent.type == 'show') that.reset() +            that.transitioning = 0 +            that.$element.trigger(completeEvent) +          } + +      this.$element.trigger(startEvent) + +      if (startEvent.isDefaultPrevented()) return + +      this.transitioning = 1 + +      this.$element[method]('in') + +      $.support.transition && this.$element.hasClass('collapse') ? +        this.$element.one($.support.transition.end, complete) : +        complete() +    } + +  , toggle: function () { +      this[this.$element.hasClass('in') ? 'hide' : 'show']() +    } + +  } + + + /* COLLAPSIBLE PLUGIN DEFINITION +  * ============================== */ + +  $.fn.collapse = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('collapse') +        , options = typeof option == 'object' && option +      if (!data) $this.data('collapse', (data = new Collapse(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.collapse.defaults = { +    toggle: true +  } + +  $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API +  * ==================== */ + +  $(function () { +    $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { +      var $this = $(this), href +        , target = $this.attr('data-target') +          || e.preventDefault() +          || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 +        , option = $(target).data('collapse') ? 'toggle' : $this.data() +      $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') +      $(target).collapse(option) +    }) +  }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION +  * ========================= */ + +  var toggle = '[data-toggle=dropdown]' +    , Dropdown = function (element) { +        var $el = $(element).on('click.dropdown.data-api', this.toggle) +        $('html').on('click.dropdown.data-api', function () { +          $el.parent().removeClass('open') +        }) +      } + +  Dropdown.prototype = { + +    constructor: Dropdown + +  , toggle: function (e) { +      var $this = $(this) +        , $parent +        , isActive + +      if ($this.is('.disabled, :disabled')) return + +      $parent = getParent($this) + +      isActive = $parent.hasClass('open') + +      clearMenus() + +      if (!isActive) { +        $parent.toggleClass('open') +        $this.focus() +      } + +      return false +    } + +  , keydown: function (e) { +      var $this +        , $items +        , $active +        , $parent +        , isActive +        , index + +      if (!/(38|40|27)/.test(e.keyCode)) return + +      $this = $(this) + +      e.preventDefault() +      e.stopPropagation() + +      if ($this.is('.disabled, :disabled')) return + +      $parent = getParent($this) + +      isActive = $parent.hasClass('open') + +      if (!isActive || (isActive && e.keyCode == 27)) return $this.click() + +      $items = $('[role=menu] li:not(.divider) a', $parent) + +      if (!$items.length) return + +      index = $items.index($items.filter(':focus')) + +      if (e.keyCode == 38 && index > 0) index--                                        // up +      if (e.keyCode == 40 && index < $items.length - 1) index++                        // down +      if (!~index) index = 0 + +      $items +        .eq(index) +        .focus() +    } + +  } + +  function clearMenus() { +    getParent($(toggle)) +      .removeClass('open') +  } + +  function getParent($this) { +    var selector = $this.attr('data-target') +      , $parent + +    if (!selector) { +      selector = $this.attr('href') +      selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 +    } + +    $parent = $(selector) +    $parent.length || ($parent = $this.parent()) + +    return $parent +  } + + +  /* DROPDOWN PLUGIN DEFINITION +   * ========================== */ + +  $.fn.dropdown = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('dropdown') +      if (!data) $this.data('dropdown', (data = new Dropdown(this))) +      if (typeof option == 'string') data[option].call($this) +    }) +  } + +  $.fn.dropdown.Constructor = Dropdown + + +  /* APPLY TO STANDARD DROPDOWN ELEMENTS +   * =================================== */ + +  $(function () { +    $('html') +      .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) +    $('body') +      .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) +      .on('click.dropdown.data-api touchstart.dropdown.data-api'  , toggle, Dropdown.prototype.toggle) +      .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) +  }) + +}(window.jQuery);/* ========================================================= + * bootstrap-modal.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION +  * ====================== */ + +  var Modal = function (element, options) { +    this.options = options +    this.$element = $(element) +      .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) +    this.options.remote && this.$element.find('.modal-body').load(this.options.remote) +  } + +  Modal.prototype = { + +      constructor: Modal + +    , toggle: function () { +        return this[!this.isShown ? 'show' : 'hide']() +      } + +    , show: function () { +        var that = this +          , e = $.Event('show') + +        this.$element.trigger(e) + +        if (this.isShown || e.isDefaultPrevented()) return + +        $('body').addClass('modal-open') + +        this.isShown = true + +        this.escape() + +        this.backdrop(function () { +          var transition = $.support.transition && that.$element.hasClass('fade') + +          if (!that.$element.parent().length) { +            that.$element.appendTo(document.body) //don't move modals dom position +          } + +          that.$element +            .show() + +          if (transition) { +            that.$element[0].offsetWidth // force reflow +          } + +          that.$element +            .addClass('in') +            .attr('aria-hidden', false) +            .focus() + +          that.enforceFocus() + +          transition ? +            that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : +            that.$element.trigger('shown') + +        }) +      } + +    , hide: function (e) { +        e && e.preventDefault() + +        var that = this + +        e = $.Event('hide') + +        this.$element.trigger(e) + +        if (!this.isShown || e.isDefaultPrevented()) return + +        this.isShown = false + +        $('body').removeClass('modal-open') + +        this.escape() + +        $(document).off('focusin.modal') + +        this.$element +          .removeClass('in') +          .attr('aria-hidden', true) + +        $.support.transition && this.$element.hasClass('fade') ? +          this.hideWithTransition() : +          this.hideModal() +      } + +    , enforceFocus: function () { +        var that = this +        $(document).on('focusin.modal', function (e) { +          if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { +            that.$element.focus() +          } +        }) +      } + +    , escape: function () { +        var that = this +        if (this.isShown && this.options.keyboard) { +          this.$element.on('keyup.dismiss.modal', function ( e ) { +            e.which == 27 && that.hide() +          }) +        } else if (!this.isShown) { +          this.$element.off('keyup.dismiss.modal') +        } +      } + +    , hideWithTransition: function () { +        var that = this +          , timeout = setTimeout(function () { +              that.$element.off($.support.transition.end) +              that.hideModal() +            }, 500) + +        this.$element.one($.support.transition.end, function () { +          clearTimeout(timeout) +          that.hideModal() +        }) +      } + +    , hideModal: function (that) { +        this.$element +          .hide() +          .trigger('hidden') + +        this.backdrop() +      } + +    , removeBackdrop: function () { +        this.$backdrop.remove() +        this.$backdrop = null +      } + +    , backdrop: function (callback) { +        var that = this +          , animate = this.$element.hasClass('fade') ? 'fade' : '' + +        if (this.isShown && this.options.backdrop) { +          var doAnimate = $.support.transition && animate + +          this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') +            .appendTo(document.body) + +          if (this.options.backdrop != 'static') { +            this.$backdrop.click($.proxy(this.hide, this)) +          } + +          if (doAnimate) this.$backdrop[0].offsetWidth // force reflow + +          this.$backdrop.addClass('in') + +          doAnimate ? +            this.$backdrop.one($.support.transition.end, callback) : +            callback() + +        } else if (!this.isShown && this.$backdrop) { +          this.$backdrop.removeClass('in') + +          $.support.transition && this.$element.hasClass('fade')? +            this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) : +            this.removeBackdrop() + +        } else if (callback) { +          callback() +        } +      } +  } + + + /* MODAL PLUGIN DEFINITION +  * ======================= */ + +  $.fn.modal = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('modal') +        , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) +      if (!data) $this.data('modal', (data = new Modal(this, options))) +      if (typeof option == 'string') data[option]() +      else if (options.show) data.show() +    }) +  } + +  $.fn.modal.defaults = { +      backdrop: true +    , keyboard: true +    , show: true +  } + +  $.fn.modal.Constructor = Modal + + + /* MODAL DATA-API +  * ============== */ + +  $(function () { +    $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { +      var $this = $(this) +        , href = $this.attr('href') +        , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7 +        , option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) + +      e.preventDefault() + +      $target +        .modal(option) +        .one('hide', function () { +          $this.focus() +        }) +    }) +  }) + +}(window.jQuery);/* =========================================================== + * bootstrap-tooltip.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#tooltips + * Inspired by the original jQuery.tipsy by Jason Frame + * =========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* TOOLTIP PUBLIC CLASS DEFINITION +  * =============================== */ + +  var Tooltip = function (element, options) { +    this.init('tooltip', element, options) +  } + +  Tooltip.prototype = { + +    constructor: Tooltip + +  , init: function (type, element, options) { +      var eventIn +        , eventOut + +      this.type = type +      this.$element = $(element) +      this.options = this.getOptions(options) +      this.enabled = true + +      if (this.options.trigger == 'click') { +        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) +      } else if (this.options.trigger != 'manual') { +        eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus' +        eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur' +        this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) +        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) +      } + +      this.options.selector ? +        (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : +        this.fixTitle() +    } + +  , getOptions: function (options) { +      options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data()) + +      if (options.delay && typeof options.delay == 'number') { +        options.delay = { +          show: options.delay +        , hide: options.delay +        } +      } + +      return options +    } + +  , enter: function (e) { +      var self = $(e.currentTarget)[this.type](this._options).data(this.type) + +      if (!self.options.delay || !self.options.delay.show) return self.show() + +      clearTimeout(this.timeout) +      self.hoverState = 'in' +      this.timeout = setTimeout(function() { +        if (self.hoverState == 'in') self.show() +      }, self.options.delay.show) +    } + +  , leave: function (e) { +      var self = $(e.currentTarget)[this.type](this._options).data(this.type) + +      if (this.timeout) clearTimeout(this.timeout) +      if (!self.options.delay || !self.options.delay.hide) return self.hide() + +      self.hoverState = 'out' +      this.timeout = setTimeout(function() { +        if (self.hoverState == 'out') self.hide() +      }, self.options.delay.hide) +    } + +  , show: function () { +      var $tip +        , inside +        , pos +        , actualWidth +        , actualHeight +        , placement +        , tp + +      if (this.hasContent() && this.enabled) { +        $tip = this.tip() +        this.setContent() + +        if (this.options.animation) { +          $tip.addClass('fade') +        } + +        placement = typeof this.options.placement == 'function' ? +          this.options.placement.call(this, $tip[0], this.$element[0]) : +          this.options.placement + +        inside = /in/.test(placement) + +        $tip +          .remove() +          .css({ top: 0, left: 0, display: 'block' }) +          .appendTo(inside ? this.$element : document.body) + +        pos = this.getPosition(inside) + +        actualWidth = $tip[0].offsetWidth +        actualHeight = $tip[0].offsetHeight + +        switch (inside ? placement.split(' ')[1] : placement) { +          case 'bottom': +            tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2} +            break +          case 'top': +            tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2} +            break +          case 'left': +            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth} +            break +          case 'right': +            tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width} +            break +        } + +        $tip +          .css(tp) +          .addClass(placement) +          .addClass('in') +      } +    } + +  , setContent: function () { +      var $tip = this.tip() +        , title = this.getTitle() + +      $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) +      $tip.removeClass('fade in top bottom left right') +    } + +  , hide: function () { +      var that = this +        , $tip = this.tip() + +      $tip.removeClass('in') + +      function removeWithAnimation() { +        var timeout = setTimeout(function () { +          $tip.off($.support.transition.end).remove() +        }, 500) + +        $tip.one($.support.transition.end, function () { +          clearTimeout(timeout) +          $tip.remove() +        }) +      } + +      $.support.transition && this.$tip.hasClass('fade') ? +        removeWithAnimation() : +        $tip.remove() + +      return this +    } + +  , fixTitle: function () { +      var $e = this.$element +      if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { +        $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title') +      } +    } + +  , hasContent: function () { +      return this.getTitle() +    } + +  , getPosition: function (inside) { +      return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), { +        width: this.$element[0].offsetWidth +      , height: this.$element[0].offsetHeight +      }) +    } + +  , getTitle: function () { +      var title +        , $e = this.$element +        , o = this.options + +      title = $e.attr('data-original-title') +        || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title) + +      return title +    } + +  , tip: function () { +      return this.$tip = this.$tip || $(this.options.template) +    } + +  , validate: function () { +      if (!this.$element[0].parentNode) { +        this.hide() +        this.$element = null +        this.options = null +      } +    } + +  , enable: function () { +      this.enabled = true +    } + +  , disable: function () { +      this.enabled = false +    } + +  , toggleEnabled: function () { +      this.enabled = !this.enabled +    } + +  , toggle: function () { +      this[this.tip().hasClass('in') ? 'hide' : 'show']() +    } + +  , destroy: function () { +      this.hide().$element.off('.' + this.type).removeData(this.type) +    } + +  } + + + /* TOOLTIP PLUGIN DEFINITION +  * ========================= */ + +  $.fn.tooltip = function ( option ) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('tooltip') +        , options = typeof option == 'object' && option +      if (!data) $this.data('tooltip', (data = new Tooltip(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.tooltip.Constructor = Tooltip + +  $.fn.tooltip.defaults = { +    animation: true +  , placement: 'top' +  , selector: false +  , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' +  , trigger: 'hover' +  , title: '' +  , delay: 0 +  , html: true +  } + +}(window.jQuery); +/* =========================================================== + * bootstrap-popover.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#popovers + * =========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * =========================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* POPOVER PUBLIC CLASS DEFINITION +  * =============================== */ + +  var Popover = function (element, options) { +    this.init('popover', element, options) +  } + + +  /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js +     ========================================== */ + +  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { + +    constructor: Popover + +  , setContent: function () { +      var $tip = this.tip() +        , title = this.getTitle() +        , content = this.getContent() + +      $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) +      $tip.find('.popover-content > *')[this.options.html ? 'html' : 'text'](content) + +      $tip.removeClass('fade top bottom left right in') +    } + +  , hasContent: function () { +      return this.getTitle() || this.getContent() +    } + +  , getContent: function () { +      var content +        , $e = this.$element +        , o = this.options + +      content = $e.attr('data-content') +        || (typeof o.content == 'function' ? o.content.call($e[0]) :  o.content) + +      return content +    } + +  , tip: function () { +      if (!this.$tip) { +        this.$tip = $(this.options.template) +      } +      return this.$tip +    } + +  , destroy: function () { +      this.hide().$element.off('.' + this.type).removeData(this.type) +    } + +  }) + + + /* POPOVER PLUGIN DEFINITION +  * ======================= */ + +  $.fn.popover = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('popover') +        , options = typeof option == 'object' && option +      if (!data) $this.data('popover', (data = new Popover(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.popover.Constructor = Popover + +  $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, { +    placement: 'right' +  , trigger: 'click' +  , content: '' +  , template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>' +  }) + +}(window.jQuery);/* ============================================================= + * bootstrap-scrollspy.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#scrollspy + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* SCROLLSPY CLASS DEFINITION +  * ========================== */ + +  function ScrollSpy(element, options) { +    var process = $.proxy(this.process, this) +      , $element = $(element).is('body') ? $(window) : $(element) +      , href +    this.options = $.extend({}, $.fn.scrollspy.defaults, options) +    this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process) +    this.selector = (this.options.target +      || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 +      || '') + ' .nav li > a' +    this.$body = $('body') +    this.refresh() +    this.process() +  } + +  ScrollSpy.prototype = { + +      constructor: ScrollSpy + +    , refresh: function () { +        var self = this +          , $targets + +        this.offsets = $([]) +        this.targets = $([]) + +        $targets = this.$body +          .find(this.selector) +          .map(function () { +            var $el = $(this) +              , href = $el.data('target') || $el.attr('href') +              , $href = /^#\w/.test(href) && $(href) +            return ( $href +              && $href.length +              && [[ $href.position().top, href ]] ) || null +          }) +          .sort(function (a, b) { return a[0] - b[0] }) +          .each(function () { +            self.offsets.push(this[0]) +            self.targets.push(this[1]) +          }) +      } + +    , process: function () { +        var scrollTop = this.$scrollElement.scrollTop() + this.options.offset +          , scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight +          , maxScroll = scrollHeight - this.$scrollElement.height() +          , offsets = this.offsets +          , targets = this.targets +          , activeTarget = this.activeTarget +          , i + +        if (scrollTop >= maxScroll) { +          return activeTarget != (i = targets.last()[0]) +            && this.activate ( i ) +        } + +        for (i = offsets.length; i--;) { +          activeTarget != targets[i] +            && scrollTop >= offsets[i] +            && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) +            && this.activate( targets[i] ) +        } +      } + +    , activate: function (target) { +        var active +          , selector + +        this.activeTarget = target + +        $(this.selector) +          .parent('.active') +          .removeClass('active') + +        selector = this.selector +          + '[data-target="' + target + '"],' +          + this.selector + '[href="' + target + '"]' + +        active = $(selector) +          .parent('li') +          .addClass('active') + +        if (active.parent('.dropdown-menu').length)  { +          active = active.closest('li.dropdown').addClass('active') +        } + +        active.trigger('activate') +      } + +  } + + + /* SCROLLSPY PLUGIN DEFINITION +  * =========================== */ + +  $.fn.scrollspy = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('scrollspy') +        , options = typeof option == 'object' && option +      if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.scrollspy.Constructor = ScrollSpy + +  $.fn.scrollspy.defaults = { +    offset: 10 +  } + + + /* SCROLLSPY DATA-API +  * ================== */ + +  $(window).on('load', function () { +    $('[data-spy="scroll"]').each(function () { +      var $spy = $(this) +      $spy.scrollspy($spy.data()) +    }) +  }) + +}(window.jQuery);/* ======================================================== + * bootstrap-tab.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#tabs + * ======================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* TAB CLASS DEFINITION +  * ==================== */ + +  var Tab = function (element) { +    this.element = $(element) +  } + +  Tab.prototype = { + +    constructor: Tab + +  , show: function () { +      var $this = this.element +        , $ul = $this.closest('ul:not(.dropdown-menu)') +        , selector = $this.attr('data-target') +        , previous +        , $target +        , e + +      if (!selector) { +        selector = $this.attr('href') +        selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 +      } + +      if ( $this.parent('li').hasClass('active') ) return + +      previous = $ul.find('.active a').last()[0] + +      e = $.Event('show', { +        relatedTarget: previous +      }) + +      $this.trigger(e) + +      if (e.isDefaultPrevented()) return + +      $target = $(selector) + +      this.activate($this.parent('li'), $ul) +      this.activate($target, $target.parent(), function () { +        $this.trigger({ +          type: 'shown' +        , relatedTarget: previous +        }) +      }) +    } + +  , activate: function ( element, container, callback) { +      var $active = container.find('> .active') +        , transition = callback +            && $.support.transition +            && $active.hasClass('fade') + +      function next() { +        $active +          .removeClass('active') +          .find('> .dropdown-menu > .active') +          .removeClass('active') + +        element.addClass('active') + +        if (transition) { +          element[0].offsetWidth // reflow for transition +          element.addClass('in') +        } else { +          element.removeClass('fade') +        } + +        if ( element.parent('.dropdown-menu') ) { +          element.closest('li.dropdown').addClass('active') +        } + +        callback && callback() +      } + +      transition ? +        $active.one($.support.transition.end, next) : +        next() + +      $active.removeClass('in') +    } +  } + + + /* TAB PLUGIN DEFINITION +  * ===================== */ + +  $.fn.tab = function ( option ) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('tab') +      if (!data) $this.data('tab', (data = new Tab(this))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.tab.Constructor = Tab + + + /* TAB DATA-API +  * ============ */ + +  $(function () { +    $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { +      e.preventDefault() +      $(this).tab('show') +    }) +  }) + +}(window.jQuery);/* ============================================================= + * bootstrap-typeahead.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#typeahead + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function($){ + +  "use strict"; // jshint ;_; + + + /* TYPEAHEAD PUBLIC CLASS DEFINITION +  * ================================= */ + +  var Typeahead = function (element, options) { +    this.$element = $(element) +    this.options = $.extend({}, $.fn.typeahead.defaults, options) +    this.matcher = this.options.matcher || this.matcher +    this.sorter = this.options.sorter || this.sorter +    this.highlighter = this.options.highlighter || this.highlighter +    this.updater = this.options.updater || this.updater +    this.$menu = $(this.options.menu).appendTo('body') +    this.source = this.options.source +    this.shown = false +    this.listen() +  } + +  Typeahead.prototype = { + +    constructor: Typeahead + +  , select: function () { +      var val = this.$menu.find('.active').attr('data-value') +      this.$element +        .val(this.updater(val)) +        .change() +      return this.hide() +    } + +  , updater: function (item) { +      return item +    } + +  , show: function () { +      var pos = $.extend({}, this.$element.offset(), { +        height: this.$element[0].offsetHeight +      }) + +      this.$menu.css({ +        top: pos.top + pos.height +      , left: pos.left +      }) + +      this.$menu.show() +      this.shown = true +      return this +    } + +  , hide: function () { +      this.$menu.hide() +      this.shown = false +      return this +    } + +  , lookup: function (event) { +      var items + +      this.query = this.$element.val() + +      if (!this.query || this.query.length < this.options.minLength) { +        return this.shown ? this.hide() : this +      } + +      items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source + +      return items ? this.process(items) : this +    } + +  , process: function (items) { +      var that = this + +      items = $.grep(items, function (item) { +        return that.matcher(item) +      }) + +      items = this.sorter(items) + +      if (!items.length) { +        return this.shown ? this.hide() : this +      } + +      return this.render(items.slice(0, this.options.items)).show() +    } + +  , matcher: function (item) { +      return ~item.toLowerCase().indexOf(this.query.toLowerCase()) +    } + +  , sorter: function (items) { +      var beginswith = [] +        , caseSensitive = [] +        , caseInsensitive = [] +        , item + +      while (item = items.shift()) { +        if (!item.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(item) +        else if (~item.indexOf(this.query)) caseSensitive.push(item) +        else caseInsensitive.push(item) +      } + +      return beginswith.concat(caseSensitive, caseInsensitive) +    } + +  , highlighter: function (item) { +      var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&') +      return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) { +        return '<strong>' + match + '</strong>' +      }) +    } + +  , render: function (items) { +      var that = this + +      items = $(items).map(function (i, item) { +        i = $(that.options.item).attr('data-value', item) +        i.find('a').html(that.highlighter(item)) +        return i[0] +      }) + +      items.first().addClass('active') +      this.$menu.html(items) +      return this +    } + +  , next: function (event) { +      var active = this.$menu.find('.active').removeClass('active') +        , next = active.next() + +      if (!next.length) { +        next = $(this.$menu.find('li')[0]) +      } + +      next.addClass('active') +    } + +  , prev: function (event) { +      var active = this.$menu.find('.active').removeClass('active') +        , prev = active.prev() + +      if (!prev.length) { +        prev = this.$menu.find('li').last() +      } + +      prev.addClass('active') +    } + +  , listen: function () { +      this.$element +        .on('blur',     $.proxy(this.blur, this)) +        .on('keypress', $.proxy(this.keypress, this)) +        .on('keyup',    $.proxy(this.keyup, this)) + +      if ($.browser.chrome || $.browser.webkit || $.browser.msie) { +        this.$element.on('keydown', $.proxy(this.keydown, this)) +      } + +      this.$menu +        .on('click', $.proxy(this.click, this)) +        .on('mouseenter', 'li', $.proxy(this.mouseenter, this)) +    } + +  , move: function (e) { +      if (!this.shown) return + +      switch(e.keyCode) { +        case 9: // tab +        case 13: // enter +        case 27: // escape +          e.preventDefault() +          break + +        case 38: // up arrow +          e.preventDefault() +          this.prev() +          break + +        case 40: // down arrow +          e.preventDefault() +          this.next() +          break +      } + +      e.stopPropagation() +    } + +  , keydown: function (e) { +      this.suppressKeyPressRepeat = !~$.inArray(e.keyCode, [40,38,9,13,27]) +      this.move(e) +    } + +  , keypress: function (e) { +      if (this.suppressKeyPressRepeat) return +      this.move(e) +    } + +  , keyup: function (e) { +      switch(e.keyCode) { +        case 40: // down arrow +        case 38: // up arrow +          break + +        case 9: // tab +        case 13: // enter +          if (!this.shown) return +          this.select() +          break + +        case 27: // escape +          if (!this.shown) return +          this.hide() +          break + +        default: +          this.lookup() +      } + +      e.stopPropagation() +      e.preventDefault() +  } + +  , blur: function (e) { +      var that = this +      setTimeout(function () { that.hide() }, 150) +    } + +  , click: function (e) { +      e.stopPropagation() +      e.preventDefault() +      this.select() +    } + +  , mouseenter: function (e) { +      this.$menu.find('.active').removeClass('active') +      $(e.currentTarget).addClass('active') +    } + +  } + + +  /* TYPEAHEAD PLUGIN DEFINITION +   * =========================== */ + +  $.fn.typeahead = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('typeahead') +        , options = typeof option == 'object' && option +      if (!data) $this.data('typeahead', (data = new Typeahead(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.typeahead.defaults = { +    source: [] +  , items: 8 +  , menu: '<ul class="typeahead dropdown-menu"></ul>' +  , item: '<li><a href="#"></a></li>' +  , minLength: 1 +  } + +  $.fn.typeahead.Constructor = Typeahead + + + /*   TYPEAHEAD DATA-API +  * ================== */ + +  $(function () { +    $('body').on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) { +      var $this = $(this) +      if ($this.data('typeahead')) return +      e.preventDefault() +      $this.typeahead($this.data()) +    }) +  }) + +}(window.jQuery); +/* ========================================================== + * bootstrap-affix.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#affix + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + +  "use strict"; // jshint ;_; + + + /* AFFIX CLASS DEFINITION +  * ====================== */ + +  var Affix = function (element, options) { +    this.options = $.extend({}, $.fn.affix.defaults, options) +    this.$window = $(window).on('scroll.affix.data-api', $.proxy(this.checkPosition, this)) +    this.$element = $(element) +    this.checkPosition() +  } + +  Affix.prototype.checkPosition = function () { +    if (!this.$element.is(':visible')) return + +    var scrollHeight = $(document).height() +      , scrollTop = this.$window.scrollTop() +      , position = this.$element.offset() +      , offset = this.options.offset +      , offsetBottom = offset.bottom +      , offsetTop = offset.top +      , reset = 'affix affix-top affix-bottom' +      , affix + +    if (typeof offset != 'object') offsetBottom = offsetTop = offset +    if (typeof offsetTop == 'function') offsetTop = offset.top() +    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom() + +    affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? +      false    : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? +      'bottom' : offsetTop != null && scrollTop <= offsetTop ? +      'top'    : false + +    if (this.affixed === affix) return + +    this.affixed = affix +    this.unpin = affix == 'bottom' ? position.top - scrollTop : null + +    this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : '')) +  } + + + /* AFFIX PLUGIN DEFINITION +  * ======================= */ + +  $.fn.affix = function (option) { +    return this.each(function () { +      var $this = $(this) +        , data = $this.data('affix') +        , options = typeof option == 'object' && option +      if (!data) $this.data('affix', (data = new Affix(this, options))) +      if (typeof option == 'string') data[option]() +    }) +  } + +  $.fn.affix.Constructor = Affix + +  $.fn.affix.defaults = { +    offset: 0 +  } + + + /* AFFIX DATA-API +  * ============== */ + +  $(window).on('load', function () { +    $('[data-spy="affix"]').each(function () { +      var $spy = $(this) +        , data = $spy.data() + +      data.offset = data.offset || {} + +      data.offsetBottom && (data.offset.bottom = data.offsetBottom) +      data.offsetTop && (data.offset.top = data.offsetTop) + +      $spy.affix(data) +    }) +  }) + + +}(window.jQuery);
\ No newline at end of file diff --git a/module/web/static/js/libs/jquery.qtip.min.js b/module/web/static/js/libs/jquery.qtip.min.js deleted file mode 100644 index a9c330966..000000000 --- a/module/web/static/js/libs/jquery.qtip.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! qTip2 v2.0.0 | http://craigsworks.com/projects/qtip2/ | Licensed MIT, GPL */ -(function(a){"use strict",typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)})(function(a){function G(){G.history=G.history||[],G.history.push(arguments);if("object"==typeof console){var a=console[console.warn?"warn":"log"],b=Array.prototype.slice.call(arguments),c;typeof arguments[0]=="string"&&(b[0]="qTip2: "+b[0]),c=a.apply?a.apply(console,b):a(b)}}function H(b){var e=function(a){return a===d||"object"!=typeof a},f=function(b){return!a.isFunction(b)&&(!b&&!b.attr||b.length<1||"object"==typeof b&&!b.jquery)};if(!b||"object"!=typeof b)return c;e(b.metadata)&&(b.metadata={type:b.metadata});if("content"in b){if(e(b.content)||b.content.jquery)b.content={text:b.content};f(b.content.text||c)&&(b.content.text=c),"title"in b.content&&(e(b.content.title)&&(b.content.title={text:b.content.title}),f(b.content.title.text||c)&&(b.content.title.text=c))}return"position"in b&&e(b.position)&&(b.position={my:b.position,at:b.position}),"show"in b&&e(b.show)&&(b.show=b.show.jquery?{target:b.show}:{event:b.show}),"hide"in b&&e(b.hide)&&(b.hide=b.hide.jquery?{target:b.hide}:{event:b.hide}),"style"in b&&e(b.style)&&(b.style={classes:b.style}),a.each(r,function(){this.sanitize&&this.sanitize(b)}),b}function I(e,f,n,o){function N(a){var b=0,c,d=f,e=a.split(".");while(d=d[e[b++]])b<e.length&&(c=d);return[c||f,e.pop()]}function O(){var a=f.style.widget;J.toggleClass(v,a).toggleClass(y,f.style.def&&!a),L.content.toggleClass(v+"-content",a),L.titlebar&&L.titlebar.toggleClass(v+"-header",a),L.button&&L.button.toggleClass(u+"-icon",!a)}function P(a){L.title&&(L.titlebar.remove(),L.titlebar=L.title=L.button=d,a!==c&&p.reposition())}function Q(){var b=f.content.title.button,d=typeof b=="string",e=d?b:"Close tooltip";L.button&&L.button.remove(),b.jquery?L.button=b:L.button=a("<a />",{"class":"ui-state-default ui-tooltip-close "+(f.style.widget?"":u+"-icon"),title:e,"aria-label":e}).prepend(a("<span />",{"class":"ui-icon ui-icon-close",html:"×"})),L.button.appendTo(L.titlebar).attr("role","button").click(function(a){return J.hasClass(w)||p.hide(a),c}),p.redraw()}function R(){var c=D+"-title";L.titlebar&&P(),L.titlebar=a("<div />",{"class":u+"-titlebar "+(f.style.widget?"ui-widget-header":"")}).append(L.title=a("<div />",{id:c,"class":u+"-title","aria-atomic":b})).insertBefore(L.content).delegate(".ui-tooltip-close","mousedown keydown mouseup keyup mouseout",function(b){a(this).toggleClass("ui-state-active ui-state-focus",b.type.substr(-4)==="down")}).delegate(".ui-tooltip-close","mouseover mouseout",function(b){a(this).toggleClass("ui-state-hover",b.type==="mouseover")}),f.content.title.button?Q():p.rendered&&p.redraw()}function S(a){var b=L.button,d=L.title;if(!p.rendered)return c;a?(d||R(),Q()):b.remove()}function T(b,d){var f=L.title;if(!p.rendered||!b)return c;a.isFunction(b)&&(b=b.call(e,M.event,p));if(b===c||!b&&b!=="")return P(c);b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),p.redraw(),d!==c&&p.rendered&&J[0].offsetWidth>0&&p.reposition(M.event)}function U(b,d){function g(b){function h(e){e&&(delete g[e.src],clearTimeout(p.timers.img[e.src]),a(e).unbind(K)),a.isEmptyObject(g)&&(p.redraw(),d!==c&&p.reposition(M.event),b())}var e,g={};if((e=f.find("img[src]:not([height]):not([width])")).length===0)return h();e.each(function(b,c){if(g[c.src]!==undefined)return;var d=0,e=3;(function f(){if(c.height||c.width||d>e)return h(c);d+=1,p.timers.img[c.src]=setTimeout(f,700)})(),a(c).bind("error"+K+" load"+K,function(){h(this)}),g[c.src]=c})}var f=L.content;return!p.rendered||!b?c:(a.isFunction(b)&&(b=b.call(e,M.event,p)||""),b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),p.rendered<0?J.queue("fx",g):(I=0,g(a.noop)),p)}function V(){function j(a){if(J.hasClass(w))return c;clearTimeout(p.timers.show),clearTimeout(p.timers.hide);var d=function(){p.toggle(b,a)};f.show.delay>0?p.timers.show=setTimeout(d,f.show.delay):d()}function k(b){if(J.hasClass(w)||G||I)return c;var e=a(b.relatedTarget||b.target),h=e.closest(x)[0]===J[0],i=e[0]===g.show[0];clearTimeout(p.timers.show),clearTimeout(p.timers.hide);if(d.target==="mouse"&&h||f.hide.fixed&&/mouse(out|leave|move)/.test(b.type)&&(h||i)){try{b.preventDefault(),b.stopImmediatePropagation()}catch(j){}return}f.hide.delay>0?p.timers.hide=setTimeout(function(){p.hide(b)},f.hide.delay):p.hide(b)}function l(a){if(J.hasClass(w))return c;clearTimeout(p.timers.inactive),p.timers.inactive=setTimeout(function(){p.hide(a)},f.hide.inactive)}function m(a){p.rendered&&J[0].offsetWidth>0&&p.reposition(a)}var d=f.position,g={show:f.show.target,hide:f.hide.target,viewport:a(d.viewport),document:a(document),body:a(document.body),window:a(window)},h={show:a.trim(""+f.show.event).split(" "),hide:a.trim(""+f.hide.event).split(" ")},i=a.browser.msie&&parseInt(a.browser.version,10)===6;J.bind("mouseenter"+K+" mouseleave"+K,function(a){var b=a.type==="mouseenter";b&&p.focus(a),J.toggleClass(A,b)}),/mouse(out|leave)/i.test(f.hide.event)&&f.hide.leave==="window"&&g.window.bind("mouseout"+K+" blur"+K,function(a){!/select|option/.test(a.target.nodeName)&&!a.relatedTarget&&p.hide(a)}),f.hide.fixed?(g.hide=g.hide.add(J),J.bind("mouseover"+K,function(){J.hasClass(w)||clearTimeout(p.timers.hide)})):/mouse(over|enter)/i.test(f.show.event)&&g.hide.bind("mouseleave"+K,function(a){clearTimeout(p.timers.show)}),(""+f.hide.event).indexOf("unfocus")>-1&&d.container.closest("html").bind("mousedown"+K,function(b){var c=a(b.target),d=p.rendered&&!J.hasClass(w)&&J[0].offsetWidth>0,f=c.parents(x).filter(J[0]).length>0;c[0]!==e[0]&&c[0]!==J[0]&&!f&&!e.has(c[0]).length&&!c.attr("disabled")&&p.hide(b)}),"number"==typeof f.hide.inactive&&(g.show.bind("qtip-"+n+"-inactive",l),a.each(q.inactiveEvents,function(a,b){g.hide.add(L.tooltip).bind(b+K+"-inactive",l)})),a.each(h.hide,function(b,c){var d=a.inArray(c,h.show),e=a(g.hide);d>-1&&e.add(g.show).length===e.length||c==="unfocus"?(g.show.bind(c+K,function(a){J[0].offsetWidth>0?k(a):j(a)}),delete h.show[d]):g.hide.bind(c+K,k)}),a.each(h.show,function(a,b){g.show.bind(b+K,j)}),"number"==typeof f.hide.distance&&g.show.add(J).bind("mousemove"+K,function(a){var b=M.origin||{},c=f.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&p.hide(a)}),d.target==="mouse"&&(g.show.bind("mousemove"+K,function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),d.adjust.mouse&&(f.hide.event&&(J.bind("mouseleave"+K,function(a){(a.relatedTarget||a.target)!==g.show[0]&&p.hide(a)}),L.target.bind("mouseenter"+K+" mouseleave"+K,function(a){M.onTarget=a.type==="mouseenter"})),g.document.bind("mousemove"+K,function(a){p.rendered&&M.onTarget&&!J.hasClass(w)&&J[0].offsetWidth>0&&p.reposition(a||s)}))),(d.adjust.resize||g.viewport.length)&&(a.event.special.resize?g.viewport:g.window).bind("resize"+K,m),(g.viewport.length||i&&J.css("position")==="fixed")&&g.viewport.bind("scroll"+K,m)}function W(){var b=[f.show.target[0],f.hide.target[0],p.rendered&&L.tooltip[0],f.position.container[0],f.position.viewport[0],window,document];p.rendered?a([]).pushStack(a.grep(b,function(a){return typeof a=="object"})).unbind(K):f.show.target.unbind(K+"-create")}var p=this,C=document.body,D=u+"-"+n,G=0,I=0,J=a(),K=".qtip-"+n,L,M;p.id=n,p.rendered=c,p.destroyed=c,p.elements=L={target:e},p.timers={img:{}},p.options=f,p.checks={},p.plugins={},p.cache=M={event:{},target:a(),disabled:c,attr:o,onTarget:c,lastClass:""},p.checks.builtin={"^id$":function(d,e,f){var g=f===b?q.nextid:f,h=u+"-"+g;g!==c&&g.length>0&&!a("#"+h).length&&(J[0].id=h,L.content[0].id=h+"-content",L.title[0].id=h+"-title")},"^content.text$":function(a,b,c){U(c)},"^content.title.text$":function(a,b,c){if(!c)return P();!L.title&&c&&R(),T(c)},"^content.title.button$":function(a,b,c){S(c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(a[b]=new r.Corner(c))},"^position.container$":function(a,b,c){p.rendered&&J.appendTo(c)},"^show.ready$":function(){p.rendered?p.toggle(b):p.render(1)},"^style.classes$":function(a,b,c){J.attr("class",u+" qtip ui-helper-reset "+c)},"^style.widget|content.title":O,"^events.(render|show|move|hide|focus|blur)$":function(b,c,d){J[(a.isFunction(d)?"":"un")+"bind"]("tooltip"+c,d)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){var a=f.position;J.attr("tracking",a.target==="mouse"&&a.adjust.mouse),W(),V()}},a.extend(p,{render:function(d){if(p.rendered)return p;var g=f.content.text,h=f.content.title.text,i=f.position,j=a.Event("tooltiprender");return a.attr(e[0],"aria-describedby",D),J=L.tooltip=a("<div/>",{id:D,"class":u+" qtip ui-helper-reset "+y+" "+f.style.classes+" "+u+"-pos-"+f.position.my.abbrev(),width:f.style.width||"",height:f.style.height||"",tracking:i.target==="mouse"&&i.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":c,"aria-describedby":D+"-content","aria-hidden":b}).toggleClass(w,M.disabled).data("qtip",p).appendTo(f.position.container).append(L.content=a("<div />",{"class":u+"-content",id:D+"-content","aria-atomic":b})),p.rendered=-1,I=1,G=1,h&&(R(),a.isFunction(h)||T(h,c)),a.isFunction(g)||U(g,c),p.rendered=b,O(),a.each(f.events,function(b,c){a.isFunction(c)&&J.bind(b==="toggle"?"tooltipshow tooltiphide":"tooltip"+b,c)}),a.each(r,function(){this.initialize==="render"&&this(p)}),V(),J.queue("fx",function(a){j.originalEvent=M.event,J.trigger(j,[p]),I=0,G=0,p.redraw(),(f.show.ready||d)&&p.toggle(b,M.event,c),a()}),p},get:function(a){var b,c;switch(a.toLowerCase()){case"dimensions":b={height:J.outerHeight(),width:J.outerWidth()};break;case"offset":b=r.offset(J,f.position.container);break;default:c=N(a.toLowerCase()),b=c[0][c[1]],b=b.precedance?b.string():b}return b},set:function(e,g){function n(a,b){var c,d,e;for(c in l)for(d in l[c])if(e=(new RegExp(d,"i")).exec(a))b.push(e),l[c][d].apply(p,b)}var h=/^position\.(my|at|adjust|target|container)|style|content|show\.ready/i,i=/^content\.(title|attr)|style/i,j=c,k=c,l=p.checks,m;return"string"==typeof e?(m=e,e={},e[m]=g):e=a.extend(b,{},e),a.each(e,function(b,c){var d=N(b.toLowerCase()),f;f=d[0][d[1]],d[0][d[1]]="object"==typeof c&&c.nodeType?a(c):c,e[b]=[d[0],d[1],c,f],j=h.test(b)||j,k=i.test(b)||k}),H(f),G=I=1,a.each(e,n),G=I=0,p.rendered&&J[0].offsetWidth>0&&(j&&p.reposition(f.position.target==="mouse"?d:M.event),k&&p.redraw()),p},toggle:function(e,g){function u(){e?(a.browser.msie&&J[0].style.removeAttribute("filter"),J.css("overflow",""),"string"==typeof i.autofocus&&a(i.autofocus,J).focus(),i.target.trigger("qtip-"+n+"-inactive")):J.css({display:"",visibility:"",opacity:"",left:"",top:""}),t=a.Event("tooltip"+(e?"visible":"hidden")),t.originalEvent=g?M.event:d,J.trigger(t,[p])}if(!p.rendered)return e?p.render(1):p;var h=e?"show":"hide",i=f[h],j=f[e?"hide":"show"],k=f.position,l=f.content,m=J[0].offsetWidth>0,o=e||i.target.length===1,q=!g||i.target.length<2||M.target[0]===g.target,r,t;(typeof e).search("boolean|number")&&(e=!m);if(!J.is(":animated")&&m===e&&q)return p;if(g){if(/over|enter/.test(g.type)&&/out|leave/.test(M.event.type)&&f.show.target.add(g.target).length===f.show.target.length&&J.has(g.relatedTarget).length)return p;M.event=a.extend({},g)}return t=a.Event("tooltip"+h),t.originalEvent=g?M.event:d,J.trigger(t,[p,90]),t.isDefaultPrevented()?p:(a.attr(J[0],"aria-hidden",!e),e?(M.origin=a.extend({},s),p.focus(g),a.isFunction(l.text)&&U(l.text,c),a.isFunction(l.title.text)&&T(l.title.text,c),!F&&k.target==="mouse"&&k.adjust.mouse&&(a(document).bind("mousemove.qtip",function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),F=b),p.reposition(g,arguments[2]),(t.solo=!!i.solo)&&a(x,i.solo).not(J).qtip("hide",t)):(clearTimeout(p.timers.show),delete M.origin,F&&!a(x+'[tracking="true"]:visible',i.solo).not(J).length&&(a(document).unbind("mousemove.qtip"),F=c),p.blur(g)),i.effect===c||o===c?(J[h](),u.call(J)):a.isFunction(i.effect)?(J.stop(1,1),i.effect.call(J,p),J.queue("fx",function(a){u(),a()})):J.fadeTo(90,e?1:0,u),e&&i.target.trigger("qtip-"+n+"-inactive"),p)},show:function(a){return p.toggle(b,a)},hide:function(a){return p.toggle(c,a)},focus:function(b){if(!p.rendered)return p;var c=a(x),d=parseInt(J[0].style.zIndex,10),e=q.zindex+c.length,f=a.extend({},b),g,h;return J.hasClass(z)||(h=a.Event("tooltipfocus"),h.originalEvent=f,J.trigger(h,[p,e]),h.isDefaultPrevented()||(d!==e&&(c.each(function(){this.style.zIndex>d&&(this.style.zIndex=this.style.zIndex-1)}),c.filter("."+z).qtip("blur",f)),J.addClass(z)[0].style.zIndex=e)),p},blur:function(b){var c=a.extend({},b),d;return J.removeClass(z),d=a.Event("tooltipblur"),d.originalEvent=c,J.trigger(d,[p]),p},reposition:function(b,d){if(!p.rendered||G)return p;G=1;var e=f.position.target,g=f.position,h=g.my,n=g.at,o=g.adjust,q=o.method.split(" "),t=J.outerWidth(),u=J.outerHeight(),v=0,w=0,x=a.Event("tooltipmove"),y=J.css("position")==="fixed",z=g.viewport,A={left:0,top:0},B=g.container,C=J[0].offsetWidth>0,D,E,F;if(a.isArray(e)&&e.length===2)n={x:j,y:i},A={left:e[0],top:e[1]};else if(e==="mouse"&&(b&&b.pageX||M.event.pageX))n={x:j,y:i},b=(b&&(b.type==="resize"||b.type==="scroll")?M.event:b&&b.pageX&&b.type==="mousemove"?b:s&&s.pageX&&(o.mouse||!b||!b.pageX)?{pageX:s.pageX,pageY:s.pageY}:!o.mouse&&M.origin&&M.origin.pageX&&f.show.distance?M.origin:b)||b||M.event||s||{},A={top:b.pageY,left:b.pageX};else{e==="event"&&b&&b.target&&b.type!=="scroll"&&b.type!=="resize"?M.target=a(b.target):e!=="event"&&(M.target=a(e.jquery?e:L.target)),e=M.target,e=a(e).eq(0);if(e.length===0)return p;e[0]===document||e[0]===window?(v=r.iOS?window.innerWidth:e.width(),w=r.iOS?window.innerHeight:e.height(),e[0]===window&&(A={top:(z||e).scrollTop(),left:(z||e).scrollLeft()})):r.imagemap&&e.is("area")?D=r.imagemap(p,e,n,r.viewport?q:c):r.svg&&typeof e[0].xmlbase=="string"?D=r.svg(p,e,n,r.viewport?q:c):(v=e.outerWidth(),w=e.outerHeight(),A=r.offset(e,B)),D&&(v=D.width,w=D.height,E=D.offset,A=D.position);if(r.iOS>3.1&&r.iOS<4.1||r.iOS>=4.3&&r.iOS<4.33||!r.iOS&&y)F=a(window),A.left-=F.scrollLeft(),A.top-=F.scrollTop();A.left+=n.x===l?v:n.x===m?v/2:0,A.top+=n.y===k?w:n.y===m?w/2:0}return A.left+=o.x+(h.x===l?-t:h.x===m?-t/2:0),A.top+=o.y+(h.y===k?-u:h.y===m?-u/2:0),r.viewport?(A.adjusted=r.viewport(p,A,g,v,w,t,u),E&&A.adjusted.left&&(A.left+=E.left),E&&A.adjusted.top&&(A.top+=E.top)):A.adjusted={left:0,top:0},x.originalEvent=a.extend({},b),J.trigger(x,[p,A,z.elem||z]),x.isDefaultPrevented()?p:(delete A.adjusted,d===c||!C||isNaN(A.left)||isNaN(A.top)||e==="mouse"||!a.isFunction(g.effect)?J.css(A):a.isFunction(g.effect)&&(g.effect.call(J,p,a.extend({},A)),J.queue(function(b){a(this).css({opacity:"",height:""}),a.browser.msie&&this.style.removeAttribute("filter"),b()})),G=0,p)},redraw:function(){if(p.rendered<1||I)return p;var a=f.position.container,b,c,d,e;return I=1,f.style.height&&J.css(h,f.style.height),f.style.width?J.css(g,f.style.width):(J.css(g,"").addClass(B),c=J.width()+1,d=J.css("max-width")||"",e=J.css("min-width")||"",b=(d+e).indexOf("%")>-1?a.width()/100:0,d=(d.indexOf("%")>-1?b:1)*parseInt(d,10)||c,e=(e.indexOf("%")>-1?b:1)*parseInt(e,10)||0,c=d+e?Math.min(Math.max(c,e),d):c,J.css(g,Math.round(c)).removeClass(B)),I=0,p},disable:function(b){return"boolean"!=typeof b&&(b=!J.hasClass(w)&&!M.disabled),p.rendered?(J.toggleClass(w,b),a.attr(J[0],"aria-disabled",b)):M.disabled=!!b,p},enable:function(){return p.disable(c)},destroy:function(){var c=e[0],d=a.attr(c,E),g=e.data("qtip");p.destroyed=b,p.rendered&&(J.stop(1,0).remove(),a.each(p.plugins,function(){this.destroy&&this.destroy()})),clearTimeout(p.timers.show),clearTimeout(p.timers.hide),W();if(!g||p===g)a.removeData(c,"qtip"),f.suppress&&d&&(a.attr(c,"title",d),e.removeAttr(E)),e.removeAttr("aria-describedby");return e.unbind(".qtip-"+n),delete t[p.id],e}})}function J(e,f){var g,h,i,j,k,l=a(this),m=a(document.body),n=this===document?m:l,o=l.metadata?l.metadata(f.metadata):d,p=f.metadata.type==="html5"&&o?o[f.metadata.name]:d,s=l.data(f.metadata.name||"qtipopts");try{s=typeof s=="string"?a.parseJSON(s):s}catch(t){G("Unable to parse HTML5 attribute data: "+s)}j=a.extend(b,{},q.defaults,f,typeof s=="object"?H(s):d,H(p||o)),h=j.position,j.id=e;if("boolean"==typeof j.content.text){i=l.attr(j.content.attr);if(j.content.attr!==c&&i)j.content.text=i;else return G("Unable to locate content for tooltip! Aborting render of tooltip on element: ",l),c}h.container.length||(h.container=m),h.target===c&&(h.target=n),j.show.target===c&&(j.show.target=n),j.show.solo===b&&(j.show.solo=h.container.closest("body")),j.hide.target===c&&(j.hide.target=n),j.position.viewport===b&&(j.position.viewport=h.container),h.container=h.container.eq(0),h.at=new r.Corner(h.at),h.my=new r.Corner(h.my);if(a.data(this,"qtip"))if(j.overwrite)l.qtip("destroy");else if(j.overwrite===c)return c;return j.suppress&&(k=a.attr(this,"title"))&&a(this).removeAttr("title").attr(E,k).attr("title",""),g=new I(l,j,e,!!i),a.data(this,"qtip",g),l.bind("remove.qtip-"+e+" removeqtip.qtip-"+e,function(){g.destroy()}),g}function K(d){var e=this,f=d.elements.tooltip,g=d.options.content.ajax,h=q.defaults.content.ajax,i=".qtip-ajax",j=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,k=b,l=c,m;d.checks.ajax={"^content.ajax":function(a,b,c){b==="ajax"&&(g=c),b==="once"?e.init():g&&g.url?e.load():f.unbind(i)}},a.extend(e,{init:function(){return g&&g.url&&f.unbind(i)[g.once?"one":"bind"]("tooltipshow"+i,e.load),e},load:function(f){function r(){var e;if(d.destroyed)return;k=c,p&&(l=b,d.show(f.originalEvent)),(e=h.complete||g.complete)&&a.isFunction(e)&&e.apply(g.context||d,arguments)}function s(b,c,e){var f;if(d.destroyed)return;o&&(b=a("<div/>").append(b.replace(j,"")).find(o)),(f=h.success||g.success)&&a.isFunction(f)?f.call(g.context||d,b,c,e):d.set("content.text",b)}function t(a,b,c){if(d.destroyed||a.status===0)return;d.set("content.text",b+": "+c)}if(l){l=c;return}var i=g.url.indexOf(" "),n=g.url,o,p=!g.loading&&k;if(p)try{f.preventDefault()}catch(q){}else if(f&&f.isDefaultPrevented())return e;m&&m.abort&&m.abort(),i>-1&&(o=n.substr(i),n=n.substr(0,i)),m=a.ajax(a.extend({error:h.error||t,context:d},g,{url:n,success:s,complete:r}))},destroy:function(){m&&m.abort&&m.abort(),d.destroyed=b}}),e.init()}function L(a,b,c){var d=Math.ceil(b/2),e=Math.ceil(c/2),f={bottomright:[[0,0],[b,c],[b,0]],bottomleft:[[0,0],[b,0],[0,c]],topright:[[0,c],[b,0],[b,c]],topleft:[[0,0],[0,c],[b,c]],topcenter:[[0,c],[d,0],[b,c]],bottomcenter:[[0,0],[b,0],[d,c]],rightcenter:[[0,0],[b,e],[0,c]],leftcenter:[[b,0],[b,c],[0,e]]};return f.lefttop=f.bottomright,f.righttop=f.bottomleft,f.leftbottom=f.topright,f.rightbottom=f.topleft,f[a.string()]}function M(n,o){function C(){w.width=s.height,w.height=s.width}function D(){w.width=s.width,w.height=s.height}function E(a,d,g,h){if(!t.tip)return;var o=q.corner.clone(),r=g.adjusted,u=n.options.position.adjust.method.split(" "),w=u[0],x=u[1]||u[0],y={left:c,top:c,x:0,y:0},z,A={},B;q.corner.fixed!==b&&(w===p&&o.precedance===e&&r.left&&o.y!==m?o.precedance=o.precedance===e?f:e:w!==p&&r.left&&(o.x=o.x===m?r.left>0?j:l:o.x===j?l:j),x===p&&o.precedance===f&&r.top&&o.x!==m?o.precedance=o.precedance===f?e:f:x!==p&&r.top&&(o.y=o.y===m?r.top>0?i:k:o.y===i?k:i),o.string()!==v.corner.string()&&(v.top!==r.top||v.left!==r.left)&&q.update(o,c)),z=q.position(o,r),z[o.x]+=F(o,o.x,b),z[o.y]+=F(o,o.y,b),z.right!==undefined&&(z.left=-z.right),z.bottom!==undefined&&(z.top=-z.bottom),z.user=Math.max(0,s.offset);if(y.left=w===p&&!!r.left)o.x===m?A["margin-left"]=y.x=z["margin-left"]-r.left:(B=z.right!==undefined?[r.left,-z.left]:[-r.left,z.left],(y.x=Math.max(B[0],B[1]))>B[0]&&(g.left-=r.left,y.left=c),A[z.right!==undefined?l:j]=y.x);if(y.top=x===p&&!!r.top)o.y===m?A["margin-top"]=y.y=z["margin-top"]-r.top:(B=z.bottom!==undefined?[r.top,-z.top]:[-r.top,z.top],(y.y=Math.max(B[0],B[1]))>B[0]&&(g.top-=r.top,y.top=c),A[z.bottom!==undefined?k:i]=y.y);t.tip.css(A).toggle(!(y.x&&y.y||o.x===m&&y.y||o.y===m&&y.x)),g.left-=z.left.charAt?z.user:w!==p||y.top||!y.left&&!y.top?z.left:0,g.top-=z.top.charAt?z.user:x!==p||y.left||!y.left&&!y.top?z.top:0,v.left=r.left,v.top=r.top,v.corner=o.clone()}function F(a,b,c){b=b?b:a[a.precedance];var d=u.hasClass(B),e=t.titlebar&&a.y===i,f=e?t.titlebar:t.tooltip,g="border-"+b+"-width",h;return u.addClass(B),h=parseInt(f.css(g),10),h=(c?h||parseInt(u.css(g),10):h)||0,u.toggleClass(B,d),h}function G(b){function j(a){return parseInt(d.css(a),10)||parseInt(u.css(a),10)}var c=t.titlebar&&b.y===i,d=c?t.titlebar:t.content,e=a.browser.mozilla,f=e?"-moz-":a.browser.webkit?"-webkit-":"",g="border-radius-"+b.y+b.x,h="border-"+b.y+"-"+b.x+"-radius";return j(h)||j(f+h)||j(f+g)||j(g)||0}function H(a){var b=a.precedance===f,c=w[b?g:h],d=w[b?h:g],e=a.string().indexOf(m)>-1,i=c*(e?.5:1),j=Math.pow,k=Math.round,l,n,o,p=Math.sqrt(j(i,2)+j(d,2)),q=[y/i*p,y/d*p];return q[2]=Math.sqrt(j(q[0],2)-j(y,2)),q[3]=Math.sqrt(j(q[1],2)-j(y,2)),l=p+q[2]+q[3]+(e?0:q[0]),n=l/p,o=[k(n*d),k(n*c)],{height:o[b?0:1],width:o[b?1:0]}}var q=this,s=n.options.style.tip,t=n.elements,u=t.tooltip,v={top:0,left:0},w={width:s.width,height:s.height},x={},y=s.border||0,z=".qtip-tip",A=!!(a("<canvas />")[0]||{}).getContext;q.corner=d,q.mimic=d,q.border=y,q.offset=s.offset,q.size=w,n.checks.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){q.init()||q.destroy(),n.reposition()},"^style.tip.(height|width)$":function(){w={width:s.width,height:s.height},q.create(),q.update(),n.reposition()},"^content.title.text|style.(classes|widget)$":function(){t.tip&&t.tip.length&&q.update()}},a.extend(q,{init:function(){var b=q.detectCorner()&&(A||a.browser.msie);return b&&(q.create(),q.update(),u.unbind(z).bind("tooltipmove"+z,E)),b},detectCorner:function(){var a=s.corner,d=n.options.position,e=d.at,f=d.my.string?d.my.string():d.my;return a===c||f===c&&e===c?c:(a===b?q.corner=new r.Corner(f):a.string||(q.corner=new r.Corner(a),q.corner.fixed=b),v.corner=new r.Corner(q.corner.string()),q.corner.string()!=="centercenter")},detectColours:function(b){var c,d,e,f=t.tip.css("cssText",""),g=b||q.corner,h=g[g.precedance],j="border-"+h+"-color",k="border"+h.charAt(0)+h.substr(1)+"Color",l=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,n="background-color",o="transparent",p=" !important",r=t.titlebar&&(g.y===i||g.y===m&&f.position().top+w.height/2+s.offset<t.titlebar.outerHeight(1)),v=r?t.titlebar:t.tooltip;u.addClass(B),x.fill=d=f.css(n),x.border=e=f[0].style[k]||f.css(j)||u.css(j);if(!d||l.test(d))x.fill=v.css(n)||o,l.test(x.fill)&&(x.fill=u.css(n)||d);if(!e||l.test(e)||e===a(document.body).css("color")){x.border=v.css(j)||o;if(l.test(x.border)||x.border===v.css("color"))x.border=u.css(j)||u.css(k)||e}a("*",f).add(f).css("cssText",n+":"+o+p+";border:0"+p+";"),u.removeClass(B)},create:function(){var b=w.width,c=w.height,d;t.tip&&t.tip.remove(),t.tip=a("<div />",{"class":"ui-tooltip-tip"}).css({width:b,height:c}).prependTo(u),A?a("<canvas />").appendTo(t.tip)[0].getContext("2d").save():(d='<vml:shape coordorigin="0,0" style="display:inline-block; position:absolute; behavior:url(#default#VML);"></vml:shape>',t.tip.html(d+d),a("*",t.tip).bind("click mousedown",function(a){a.stopPropagation()}))},update:function(g,h){var n=t.tip,o=n.children(),p=w.width,z=w.height,B="px solid ",E="px dashed transparent",G=s.mimic,I=Math.round,J,K,M,N,O;g||(g=v.corner||q.corner),G===c?G=g:(G=new r.Corner(G),G.precedance=g.precedance,G.x==="inherit"?G.x=g.x:G.y==="inherit"?G.y=g.y:G.x===G.y&&(G[g.precedance]=g[g.precedance])),J=G.precedance,g.precedance===e?C():D(),t.tip.css({width:p=w.width,height:z=w.height}),q.detectColours(g),x.border!=="transparent"?(y=F(g,d,b),s.border===0&&y>0&&(x.fill=x.border),q.border=y=s.border!==b?s.border:y):q.border=y=0,M=L(G,p,z),q.size=O=H(g),n.css(O),g.precedance===f?N=[I(G.x===j?y:G.x===l?O.width-p-y:(O.width-p)/2),I(G.y===i?O.height-z:0)]:N=[I(G.x===j?O.width-p:0),I(G.y===i?y:G.y===k?O.height-z-y:(O.height-z)/2)],A?(o.attr(O),K=o[0].getContext("2d"),K.restore(),K.save(),K.clearRect(0,0,3e3,3e3),K.fillStyle=x.fill,K.strokeStyle=x.border,K.lineWidth=y*2,K.lineJoin="miter",K.miterLimit=100,K.translate(N[0],N[1]),K.beginPath(),K.moveTo(M[0][0],M[0][1]),K.lineTo(M[1][0],M[1][1]),K.lineTo(M[2][0],M[2][1]),K.closePath(),y&&(u.css("background-clip")==="border-box"&&(K.strokeStyle=x.fill,K.stroke()),K.strokeStyle=x.border,K.stroke()),K.fill()):(M="m"+M[0][0]+","+M[0][1]+" l"+M[1][0]+","+M[1][1]+" "+M[2][0]+","+M[2][1]+" xe",N[2]=y&&/^(r|b)/i.test(g.string())?parseFloat(a.browser.version,10)===8?2:1:0,o.css({antialias:""+(G.string().indexOf(m)>-1),left:N[0]-N[2]*Number(J===e),top:N[1]-N[2]*Number(J===f),width:p+y,height:z+y}).each(function(b){var c=a(this);c[c.prop?"prop":"attr"]({coordsize:p+y+" "+(z+y),path:M,fillcolor:x.fill,filled:!!b,stroked:!b}).css({display:y||b?"block":"none"}),!b&&c.html()===""&&c.html('<vml:stroke weight="'+y*2+'px" color="'+x.border+'" miterlimit="1000" joinstyle="miter" '+' style="behavior:url(#default#VML); display:inline-block;" />')})),h!==c&&q.position(g)},position:function(b){var d=t.tip,k={},l=Math.max(0,s.offset),n,o,p;return s.corner===c||!d?c:(b=b||q.corner,n=b.precedance,o=H(b),p=[b.x,b.y],n===e&&p.reverse(),a.each(p,function(a,c){var d,e;c===m?(d=n===f?j:i,k[d]="50%",k["margin-"+d]=-Math.round(o[n===f?g:h]/2)+l):(d=F(b,c),e=G(b),k[c]=a?0:l+(e>d?e:-d))}),k[b[n]]-=o[n===e?g:h],d.css({top:"",bottom:"",left:"",right:"",margin:""}).css(k),k)},destroy:function(){t.tip&&t.tip.remove(),t.tip=!1,u.unbind(z)}}),q.init()}function N(d){function q(){o=a(n,h).not("[disabled]").map(function(){return typeof this.focus=="function"?this:null})}function s(a){o.length<1&&a.length?a.not("body").blur():o.first().focus()}function t(b){var d=a(b.target),e=d.closest(".qtip"),f;f=e.length<1?c:parseInt(e[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),!f&&a(b.target).closest(x)[0]!==h[0]&&s(d)}var e=this,f=d.options.show.modal,g=d.elements,h=g.tooltip,i="#qtip-overlay",j=".qtipmodal",k=j+d.id,l="is-modal-qtip",m=a(document.body),n=r.modal.focusable.join(","),o={},p;d.checks.modal={"^show.modal.(on|blur)$":function(){e.init(),g.overlay.toggle(h.is(":visible"))},"^content.text$":function(){q()}},a.extend(e,{init:function(){return f.on?(p=e.create(),h.attr(l,b).css("z-index",r.modal.zindex+a(x+"["+l+"]").length).unbind(j).unbind(k).bind("tooltipshow"+j+" tooltiphide"+j,function(b,c,d){var f=b.originalEvent;if(b.target===h[0])if(f&&b.type==="tooltiphide"&&/mouse(leave|enter)/.test(f.type)&&a(f.relatedTarget).closest(p[0]).length)try{b.preventDefault()}catch(g){}else(!f||f&&!f.solo)&&e[b.type.replace("tooltip","")](b,d)}).bind("tooltipfocus"+j,function(b){if(b.isDefaultPrevented()||b.target!==h[0])return;var c=a(x).filter("["+l+"]"),d=r.modal.zindex+c.length,e=parseInt(h[0].style.zIndex,10);p[0].style.zIndex=d-2,c.each(function(){this.style.zIndex>e&&(this.style.zIndex-=1)}),c.end().filter("."+z).qtip("blur",b.originalEvent),h.addClass(z)[0].style.zIndex=d;try{b.preventDefault()}catch(f){}}).bind("tooltiphide"+j,function(b){b.target===h[0]&&a("["+l+"]").filter(":visible").not(h).last().qtip("focus",b)}),f.escape&&a(document).unbind(k).bind("keydown"+k,function(a){a.keyCode===27&&h.hasClass(z)&&d.hide(a)}),f.blur&&g.overlay.unbind(k).bind("click"+k,function(a){h.hasClass(z)&&d.hide(a)}),q(),e):e},create:function(){function d(){p.css({height:a(window).height(),width:a(window).width()})}var b=a(i);return b.length?g.overlay=b.insertAfter(a(x).last()):(p=g.overlay=a("<div />",{id:i.substr(1),html:"<div></div>",mousedown:function(){return c}}).hide().insertAfter(a(x).last()),a(window).unbind(j).bind("resize"+j,d),d(),p)},toggle:function(d,g,i){if(d&&d.isDefaultPrevented())return e;var j=f.effect,n=g?"show":"hide",o=p.is(":visible"),q=a("["+l+"]").filter(":visible").not(h),r;return p||(p=e.create()),p.is(":animated")&&o===g||!g&&q.length?e:(g?(p.css({left:0,top:0}),p.toggleClass("blurs",f.blur),f.stealfocus!==c&&(m.bind("focusin"+k,t),s(a("body *")))):m.unbind("focusin"+k),p.stop(b,c),a.isFunction(j)?j.call(p,g):j===c?p[n]():p.fadeTo(parseInt(i,10)||90,g?1:0,function(){g||a(this).hide()}),g||p.queue(function(a){p.css({left:"",top:""}),a()}),e)},show:function(a,c){return e.toggle(a,b,c)},hide:function(a,b){return e.toggle(a,c,b)},destroy:function(){var b=p;return b&&(b=a("["+l+"]").not(h).length<1,b?(g.overlay.remove(),a(document).unbind(j)):g.overlay.unbind(j+d.id),m.undelegate("*","focusin"+k)),h.removeAttr(l).unbind(j)}}),e.init()}function O(b){var c=this,d=b.elements,e=d.tooltip,f=".bgiframe-"+b.id;a.extend(c,{init:function(){d.bgiframe=a('<iframe class="ui-tooltip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';"  style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>'),d.bgiframe.appendTo(e),e.bind("tooltipmove"+f,c.adjust)},adjust:function(){var a=b.get("dimensions"),c=b.plugins.tip,f=d.tip,g,h;h=parseInt(e.css("border-left-width"),10)||0,h={left:-h,top:-h},c&&f&&(g=c.corner.precedance==="x"?["width","left"]:["height","top"],h[g[1]]-=f[g[0]]()),d.bgiframe.css(h).css(a)},destroy:function(){d.bgiframe.remove(),e.unbind(f)}}),c.init()}"use strict";var b=!0,c=!1,d=null,e="x",f="y",g="width",h="height",i="top",j="left",k="bottom",l="right",m="center",n="flip",o="flipinvert",p="shift",q,r,s,t={},u="ui-tooltip",v="ui-widget",w="ui-state-disabled",x="div.qtip."+u,y=u+"-default",z=u+"-focus",A=u+"-hover",B=u+"-fluid",C="-31000px",D="_replacedByqTip",E="oldtitle",F;q=a.fn.qtip=function(e,f,g){var h=(""+e).toLowerCase(),i=d,j=a.makeArray(arguments).slice(1),k=j[j.length-1],l=this[0]?a.data(this[0],"qtip"):d;if(!arguments.length&&l||h==="api")return l;if("string"==typeof e)return this.each(function(){var d=a.data(this,"qtip");if(!d)return b;k&&k.timeStamp&&(d.cache.event=k);if(h!=="option"&&h!=="options"||!f)d[h]&&d[h].apply(d[h],j);else if(a.isPlainObject(f)||g!==undefined)d.set(f,g);else return i=d.get(f),c}),i!==d?i:this;if("object"==typeof e||!arguments.length)return l=H(a.extend(b,{},e)),q.bind.call(this,l,k)},q.bind=function(d,e){return this.each(function(f){function m(b){function d(){k.render(typeof b=="object"||g.show.ready),h.show.add(h.hide).unbind(j)}if(k.cache.disabled)return c;k.cache.event=a.extend({},b),k.cache.target=b?a(b.target):[undefined],g.show.delay>0?(clearTimeout(k.timers.show),k.timers.show=setTimeout(d,g.show.delay),i.show!==i.hide&&h.hide.bind(i.hide,function(){clearTimeout(k.timers.show)})):d()}var g,h,i,j,k,l;l=a.isArray(d.id)?d.id[f]:d.id,l=!l||l===c||l.length<1||t[l]?q.nextid++:t[l]=l,j=".qtip-"+l+"-create",k=J.call(this,l,d);if(k===c)return b;g=k.options,a.each(r,function(){this.initialize==="initialize"&&this(k)}),h={show:g.show.target,hide:g.hide.target},i={show:a.trim(""+g.show.event).replace(/ /g,j+" ")+j,hide:a.trim(""+g.hide.event).replace(/ /g,j+" ")+j},/mouse(over|enter)/i.test(i.show)&&!/mouse(out|leave)/i.test(i.hide)&&(i.hide+=" mouseleave"+j),h.show.bind("mousemove"+j,function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"},k.cache.onTarget=b}),h.show.bind(i.show,m),(g.show.ready||g.prerender)&&m(e)})},r=q.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,m).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase();var b=a.charAt(0);this.precedance=b==="t"||b==="b"?f:e,this.string=function(){return this.precedance===f?this.y+this.x:this.x+this.y},this.abbrev=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:this.precedance===f?b+a:a+b},this.invertx=function(a){this.x=this.x===j?l:this.x===l?j:a||this.x},this.inverty=function(a){this.y=this.y===i?k:this.y===k?i:a||this.y},this.clone=function(){return{x:this.x,y:this.y,precedance:this.precedance,string:this.string,abbrev:this.abbrev,clone:this.clone,invertx:this.invertx,inverty:this.inverty}}},offset:function(b,c){function j(a,b){d.left+=b*a.scrollLeft(),d.top+=b*a.scrollTop()}var d=b.offset(),e=b.closest("body")[0],f=c,g,h,i;if(f){do f.css("position")!=="static"&&(h=f.position(),d.left-=h.left+(parseInt(f.css("borderLeftWidth"),10)||0)+(parseInt(f.css("marginLeft"),10)||0),d.top-=h.top+(parseInt(f.css("borderTopWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0),!g&&(i=f.css("overflow"))!=="hidden"&&i!=="visible"&&(g=f));while((f=a(f[0].offsetParent)).length);g&&g[0]!==e&&j(g,1)}return d},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||c,fn:{attr:function(b,c){if(this.length){var d=this[0],e="title",f=a.data(d,"qtip");if(b===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?a.attr(d,E):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",c),this.attr(E,c))}return a.fn["attr"+D].apply(this,arguments)},clone:function(b){var c=a([]),d="title",e=a.fn["clone"+D].apply(this,arguments);return b||e.filter("["+E+"]").attr("title",function(){return a.attr(this,E)}).removeAttr(E),e}}},a.each(r.fn,function(c,d){if(!d||a.fn[c+D])return b;var e=a.fn[c+D]=a.fn[c];a.fn[c]=function(){return d.apply(this,arguments)||e.apply(this,arguments)}}),a.ui||(a["cleanData"+D]=a.cleanData,a.cleanData=function(b){for(var c=0,d;(d=b[c])!==undefined;c++)try{a(d).triggerHandler("removeqtip")}catch(e){}a["cleanData"+D](b)}),q.version="@VERSION",q.nextid=0,q.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),q.zindex=15e3,q.defaults={prerender:c,id:c,overwrite:b,suppress:b,content:{text:b,attr:"title",title:{text:c,button:c}},position:{my:"top left",at:"bottom right",target:c,container:c,viewport:c,adjust:{x:0,y:0,mouse:b,resize:b,method:"flip flip"},effect:function(b,d,e){a(this).animate(d,{duration:200,queue:c})}},show:{target:c,event:"mouseenter",effect:b,delay:90,solo:c,ready:c,autofocus:c},hide:{target:c,event:"mouseleave",effect:b,delay:0,fixed:c,inactive:c,leave:"window",distance:c},style:{classes:"",widget:c,width:c,height:c,def:b},events:{render:d,move:d,show:d,hide:d,toggle:d,visible:d,hidden:d,focus:d,blur:d}},r.svg=function(b,c,d,e){var f=a(document),g=c[0],h={width:0,height:0,position:{top:1e10,left:1e10}},i,j,k,l,m;while(!g.getBBox)g=g.parentNode;if(g.getBBox&&g.parentNode){i=g.getBBox(),j=g.getScreenCTM(),k=g.farthestViewportElement||g;if(!k.createSVGPoint)return h;l=k.createSVGPoint(),l.x=i.x,l.y=i.y,m=l.matrixTransform(j),h.position.left=m.x,h.position.top=m.y,l.x+=i.width,l.y+=i.height,m=l.matrixTransform(j),h.width=m.x-h.position.left,h.height=m.y-h.position.top,h.position.left+=f.scrollLeft(),h.position.top+=f.scrollTop()}return h},r.ajax=function(a){var b=a.plugins.ajax;return"object"==typeof b?b:a.plugins.ajax=new K(a)},r.ajax.initialize="render",r.ajax.sanitize=function(a){var b=a.content,c;b&&"ajax"in b&&(c=b.ajax,typeof c!="object"&&(c=a.content.ajax={url:c}),"boolean"!=typeof c.once&&c.once&&(c.once=!!c.once))},a.extend(b,q.defaults,{content:{ajax:{loading:b,once:b}}}),r.tip=function(a){var b=a.plugins.tip;return"object"==typeof b?b:a.plugins.tip=new M(a)},r.tip.initialize="render",r.tip.sanitize=function(a){var c=a.style,d;c&&"tip"in c&&(d=a.style.tip,typeof d!="object"&&(a.style.tip={corner:d}),/string|boolean/i.test(typeof d.corner)||(d.corner=b),typeof d.width!="number"&&delete d.width,typeof d.height!="number"&&delete d.height,typeof d.border!="number"&&d.border!==b&&delete d.border,typeof d.offset!="number"&&delete d.offset)},a.extend(b,q.defaults,{style:{tip:{corner:b,mimic:c,width:6,height:6,border:b,offset:0}}}),r.modal=function(a){var b=a.plugins.modal;return"object"==typeof b?b:a.plugins.modal=new N(a)},r.modal.initialize="render",r.modal.sanitize=function(a){a.show&&(typeof a.show.modal!="object"?a.show.modal={on:!!a.show.modal}:typeof a.show.modal.on=="undefined"&&(a.show.modal.on=b))},r.modal.zindex=q.zindex-200,r.modal.focusable=["a[href]","area[href]","input","select","textarea","button","iframe","object","embed","[tabindex]","[contenteditable]"],a.extend(b,q.defaults,{show:{modal:{on:c,effect:b,blur:b,stealfocus:b,escape:b}}}),r.viewport=function(a,b,c,d,n,q,r){function J(a,c,d,e,f,g,h,i,j){var k=b[f],l=v[a],n=w[a],q=d===p,r=-C.offset[f]+B.offset[f]+B["scroll"+f],s=l===f?j:l===g?-j:-j/2,t=n===f?i:n===g?-i:-i/2,u=E&&E.size?E.size[h]||0:0,x=E&&E.corner&&E.corner.precedance===a&&!q?u:0,y=r-k+x,z=k+j-B[h]-r+x,A=s-(v.precedance===a||l===v[c]?t:0)-(n===m?i/2:0);return q?(x=E&&E.corner&&E.corner.precedance===c?u:0,A=(l===f?1:-1)*s-x,b[f]+=y>0?y:z>0?-z:0,b[f]=Math.max(-C.offset[f]+B.offset[f]+(x&&E.corner[a]===m?E.offset:0),k-A,Math.min(Math.max(-C.offset[f]+B.offset[f]+B[h],k+A),b[f]))):(e*=d===o?2:0,y>0&&(l!==f||z>0)?(b[f]-=A+e,H["invert"+a](f)):z>0&&(l!==g||y>0)&&(b[f]-=(l===m?-A:A)+e,H["invert"+a](g)),b[f]<r&&-b[f]>z&&(b[f]=k,H=undefined)),b[f]-k}var s=c.target,t=a.elements.tooltip,v=c.my,w=c.at,x=c.adjust,y=x.method.split(" "),z=y[0],A=y[1]||y[0],B=c.viewport,C=c.container,D=a.cache,E=a.plugins.tip,F={left:0,top:0},G,H,I;if(!B.jquery||s[0]===window||s[0]===document.body||x.method==="none")return F;G=t.css("position")==="fixed",B={elem:B,height:B[(B[0]===window?"h":"outerH")+"eight"](),width:B[(B[0]===window?"w":"outerW")+"idth"](),scrollleft:G?0:B.scrollLeft(),scrolltop:G?0:B.scrollTop(),offset:B.offset()||{left:0,top:0}},C={elem:C,scrollLeft:C.scrollLeft(),scrollTop:C.scrollTop(),offset:C.offset()||{left:0,top:0}};if(z!=="shift"||A!=="shift")H=v.clone();return F={left:z!=="none"?J(e,f,z,x.x,j,l,g,d,q):0,top:A!=="none"?J(f,e,A,x.y,i,k,h,n,r):0},H&&D.lastClass!==(I=u+"-pos-"+H.abbrev())&&t.removeClass(a.cache.lastClass).addClass(a.cache.lastClass=I),F},r.imagemap=function(b,c,d,e){function v(a,b,c){var d=0,e=1,f=1,g=0,h=0,n=a.width,o=a.height;while(n>0&&o>0&&e>0&&f>0){n=Math.floor(n/2),o=Math.floor(o/2),c.x===j?e=n:c.x===l?e=a.width-n:e+=Math.floor(n/2),c.y===i?f=o:c.y===k?f=a.height-o:f+=Math.floor(o/2),d=b.length;while(d--){if(b.length<2)break;g=b[d][0]-a.position.left,h=b[d][1]-a.position.top,(c.x===j&&g>=e||c.x===l&&g<=e||c.x===m&&(g<e||g>a.width-e)||c.y===i&&h>=f||c.y===k&&h<=f||c.y===m&&(h<f||h>a.height-f))&&b.splice(d,1)}}return{left:b[0][0],top:b[0][1]}}c.jquery||(c=a(c));var f=b.cache.areas={},g=(c[0].shape||c.attr("shape")).toLowerCase(),h=c[0].coords||c.attr("coords"),n=h.split(","),o=[],p=a('img[usemap="#'+c.parent("map").attr("name")+'"]'),q=p.offset(),r={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10}},s=0,t=0,u;q.left+=Math.ceil((p.outerWidth()-p.width())/2),q.top+=Math.ceil((p.outerHeight()-p.height())/2);if(g==="poly"){s=n.length;while(s--)t=[parseInt(n[--s],10),parseInt(n[s+1],10)],t[0]>r.position.right&&(r.position.right=t[0]),t[0]<r.position.left&&(r.position.left=t[0]),t[1]>r.position.bottom&&(r.position.bottom=t[1]),t[1]<r.position.top&&(r.position.top=t[1]),o.push(t)}else{s=-1;while(s++<n.length)o.push(parseInt(n[s],10))}switch(g){case"rect":r={width:Math.abs(o[2]-o[0]),height:Math.abs(o[3]-o[1]),position:{left:Math.min(o[0],o[2]),top:Math.min(o[1],o[3])}};break;case"circle":r={width:o[2]+2,height:o[2]+2,position:{left:o[0],top:o[1]}};break;case"poly":r.width=Math.abs(r.position.right-r.position.left),r.height=Math.abs(r.position.bottom-r.position.top),d.abbrev()==="c"?r.position={left:r.position.left+r.width/2,top:r.position.top+r.height/2}:(f[d+h]||(r.position=v(r,o.slice(),d),e&&(e[0]==="flip"||e[1]==="flip")&&(r.offset=v(r,o.slice(),{x:d.x===j?l:d.x===l?j:m,y:d.y===i?k:d.y===k?i:m}),r.offset.left-=r.position.left,r.offset.top-=r.position.top),f[d+h]=r),r=f[d+h]),r.width=r.height=0}return r.position.left+=q.left,r.position.top+=q.top,r},r.bgiframe=function(b){var d=a.browser,e=b.plugins.bgiframe;return a("select, object").length<1||!d.msie||(""+d.version).charAt(0)!=="6"?c:"object"==typeof e?e:b.plugins.bgiframe=new O(b)},r.bgiframe.initialize="render"});
\ No newline at end of file | 
