var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); /** * @preserve * Project: Bootstrap Hover Dropdown * Author: Cameron Spear * Version: v2.1.3 * Contributors: Mattia Larentis * Dependencies: Bootstrap's Dropdown plugin, jQuery * Description: A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. * License: MIT * Homepage: http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/ */ ;(function ($, window, undefined) { // outside the scope of the jQuery plugin to // keep track of all dropdowns var $allDropdowns = $(); // if instantlyCloseOthers is true, then it will instantly // shut other nav items when a new one is hovered over $.fn.dropdownHover = function (options) { // don't do anything if touch is supported // (plugin causes some issues on mobile) if('ontouchstart' in document) return this; // don't want to affect chaining // the element we really care about // is the dropdown-toggle's parent $allDropdowns = $allDropdowns.add(this.parent()); return this.each(function () { var $this = $(this), $parent = $this.parent(), defaults = { delay: 500, hoverDelay: 0, instantlyCloseOthers: true }, data = { delay: $(this).data('delay'), hoverDelay: $(this).data('hover-delay'), instantlyCloseOthers: $(this).data('close-others') }, showEvent = 'show.bs.dropdown', hideEvent = 'hide.bs.dropdown', // shownEvent = 'shown.bs.dropdown', // hiddenEvent = 'hidden.bs.dropdown', settings = $.extend(true, {}, defaults, options, data), timeout, timeoutHover; $parent.hover(function (event) { // so a neighbor can't open the dropdown if(!$parent.hasClass('open') && !$this.is(event.target)) { // stop this event, stop executing any code // in this callback but continue to propagate return true; } openDropdown(event); }, function () { // clear timer for hover event window.clearTimeout(timeoutHover) timeout = window.setTimeout(function () { $this.attr('aria-expanded', 'false'); $parent.removeClass('open'); $this.trigger(hideEvent); }, settings.delay); }); // this helps with button groups! $this.hover(function (event) { // this helps prevent a double event from firing. // see https://github.com/CWSpear/bootstrap-hover-dropdown/issues/55 if(!$parent.hasClass('open') && !$parent.is(event.target)) { // stop this event, stop executing any code // in this callback but continue to propagate return true; } openDropdown(event); }); // handle submenus $parent.find('.dropdown-submenu').each(function (){ var $this = $(this); var subTimeout; $this.hover(function () { window.clearTimeout(subTimeout); $this.children('.dropdown-menu').show(); // always close submenu siblings instantly $this.siblings().children('.dropdown-menu').hide(); }, function () { var $submenu = $this.children('.dropdown-menu'); subTimeout = window.setTimeout(function () { $submenu.hide(); }, settings.delay); }); }); function openDropdown(event) { // clear dropdown timeout here so it doesnt close before it should window.clearTimeout(timeout); // restart hover timer window.clearTimeout(timeoutHover); // delay for hover event. timeoutHover = window.setTimeout(function () { $allDropdowns.find(':focus').blur(); if(settings.instantlyCloseOthers === true) $allDropdowns.removeClass('open'); // clear timer for hover event window.clearTimeout(timeoutHover); $this.attr('aria-expanded', 'true'); $parent.addClass('open'); $this.trigger(showEvent); }, settings.hoverDelay); } }); }; $(document).ready(function () { // apply dropdownHover to all elements with the data-hover="dropdown" attribute $('[data-hover="dropdown"]').dropdownHover(); }); })(jQuery, window); } /* FILE ARCHIVED ON 09:43:47 Oct 05, 2015 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 12:07:26 Apr 17, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). */ /* playback timings (ms): captures_list: 0.813 exclusion.robots: 0.039 exclusion.robots.policy: 0.023 esindex: 0.014 cdx.remote: 82.004 LoadShardBlock: 153.528 (3) PetaboxLoader3.datanode: 162.712 (4) PetaboxLoader3.resolve: 167.18 (2) load_resource: 179.703 */