| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | /* ============================================================ * bootstrap-dropdown.js v2.3.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)) {        if (e.which == 27) $parent.find(toggle).focus()        return $this.click()      }      $items = $('[role=menu] li:not(.divider):visible 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() {    $(toggle).each(function () {      getParent($(this)).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 && $(selector)    if (!$parent || !$parent.length) $parent = $this.parent()    return $parent  }  /* DROPDOWN PLUGIN DEFINITION   * ========================== */  var old = $.fn.dropdown  $.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 /* DROPDOWN NO CONFLICT  * ==================== */  $.fn.dropdown.noConflict = function () {    $.fn.dropdown = old    return this  }  /* APPLY TO STANDARD DROPDOWN ELEMENTS   * =================================== */  $(document)    .on('click.dropdown.data-api', clearMenus)    .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })    .on('click.dropdown-menu', function (e) { e.stopPropagation() })    .on('click.dropdown.data-api'  , toggle, Dropdown.prototype.toggle)    .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)}(window.jQuery);
 |