RIFF"WEBPVP8 Е�* �>�T�M'��%�u|�� gk�ZaQb�����o����lN���s�_�3��S+���c�€R��y����//����~��H�@�2oF�X ���R@'�:�ꞓ}��a�M,.� ��o��=�p�U�&g<�:���~���t��.�1���cyW�� We�M=�f�Y6v�����(nO���������^- �9(b _�s%{�C|�p�@�����37�}B0��u���i�Գ���� ������5�}���֮M?dz���q�e��N�~�&�N��K�av$]hO�i�C�,��"]�����@����M@�o O[�Æ*;�e]��_; }�p�?��)�'VC� J��L�y� v����18��)7c�d�mߛ�]I� ����d��?�{�.����b)49��c��Zy/��c^��%��/z�å̯�t��rS��Z��Uͩ�h��2����` �7�:��~��zP���Z����?v�R��TD���G����CJ���}�o��fs��̜#b��e"k9,���3�{Or�i��x":���{/ۈ�`�7RČ����(�p:I��%:�ͺ��W(|�=KP��3�7}���������ed��;�3�;�e��8�g�4�9 %v,B�GU�����T% ֯��B+�tR���p������F7�sT��oϱq �h�Rݧ�~*�܈_�Ck���}�nY�>��C�PQ�B��(o�६�qxy������f ���]��}����%=CW�k^t�—]����M�cX�i��%��!�Y������:N=|��wj<9ł��,�s�O�,,�U�!�������e���{���W��989�y*z�=�"E�CyW���N�2�ę��LN�HW��?����`V���DJ=#׶×ܽ$eF���o;b� ��0��&�W���Y�bR�� �Fֵ� `J�an�-Є@�tR�v��e2W��Mn�p��4P1�q ���®w���ũur*�җ.�#�4b���������:���g��ʧ�`R�4�+G�f���niU����$�K-'A�zE&]��Y�H2�4� ��˄�t��Q�4%��L�#��0FS8�Bu����ژ��"����۹�[�JK��4��z�v�ڌ��L*jD0.����?�ڃN��H��J����n�w��6Q(i;��I,.3?|�`���y���D_��(��w��������[��ZYhe�')��D*��kb����c��@� �|S�S3���- ���iq!*��w������Ł��ܩ��*FY���jV�4Q���4�,�ʑV!��N�.�1�KT,��Zp� ���iL�r��Ȧ����"y�tU���PS�ģ��?�QGng_�#yEk��B̝��1hr��ѕ�z*Ԧ�L8T�����H�^�k�-�g�z������w��N����v��RH��E��!0Cؚ)R�@�q�J�qA�r�$k4���om���Ьnu���x�������������y$�8�Z���v� &�+2�|���\r:[,!�Y�C#c��͊�{��7Щ��Y�LVę]�j��)��^���󶦙$�_����Hx>����[ +K�ڏ�1������Q�7@�^{�ik�;'H{�8 �ȇe vR����^� Meq�����Y�MC��U<��O�۫�nAfBf317���x��O�.u@3R}e�`�D��\�z���L��P������y8�?����I�"s`�b 3��ٹd�0��A�/���� ��{b�b������1� ����ka�&T�z�_4���I��PN��8��}N�r��]�՜���ӿ��9�|/.��� �fˑ.�`r�r��U-���7�Rx8L��d$H�m��Ǒ�*x�P{�D�����k��o�ueV�-.��j}���U2��g絍g���s �������aN�X�ҍ���C�� ��X��B�EF���8%p57<�x�Y�e�cϔ�\��C �OAj&N�V���!v��U��~J��j��4�V|��8�R�v�fD�)�HA�3�G��ds�7Z.���= ����+kI2�0=�'� K �H,`�ɴāTE\����E�'/��;���;��a���0"��� �x$J�T��#U=������j-�8�����y c8W����Ԋ�K��_��Y� '%Vg$I�Пq�shE�y�:�m�}�F1(:b�U�~� ���0}�C�}0����#�#}���e�S9��.��SP�m���<�~�y��� ��ɭ�ٮ6N��� ğ��t��A��N�V ������f�+�w�O1�Jq���U�B�T��į���� ��*�=z�x"yU S���� ��// ����W᫮��R�O�2W�M��<-�;�F�`9 �����t�:C{a�8�� <�r'���:�g8%�9J̞�˦��eV�7l�~�#����.yY)$��k�|�!�3���m���XS���J4B���`�����oL[]��aT[�C��@h�T�l��_�e>�����K<'��P�zgk�#fm��V�]�ݽ�j1����H��J��J58��ڱ��@�e&*�w��e���Q��HT8�ֽ��\�Fa�栆�A�ڝӚ׹@�:9`��G�h�7����t<���_˒|�\bU�O�����,M�a�oynGf�޶7�w�i`�m[��XE4�*�8}5��U1���^�B*��_%[����Yb�^���S�l�"A�1�T��ڈ��(???)j�S�n�8v%� Eo��� mE��|�Έ�Ai�3uy5O����7Rܽ���"L��X���1�@�=?5�_'��{j�����Z3L��k��^x6g3i�����r.��N��&��9[��ɓW[+�� 7�����fe�3�K�%��0F��+V�ϛ+3�B�p,y;Z�NGK�uWg䁯9�v��t��ǒx�JY�O��K�iY��#FJy�Bzt�Q^�Y��Uϲ-͖��9��g�X,�X] f�P/�]d�䠾�̔m%Q��겓\q(�%'����/EN�P�1�o��� ���}��'��c�F��Ju��4��0ck�N��w�1��&]a ��^I�)����֓��\;�1��3��� �L��{>�+���a��Jg��#����P���>�5�a<�`>>˔�]�ߎey�-T���ʵ���r���8`dmNm���_mӐK�Ҏ-޴�� ��RQ%�d�l"��l�_��ie0.�$Xh|.jv,���l\ uyj�u\�/� B:�܀�]� _��T��I���lz�&c�A�g{g��O˂�O���O�M�t��7Y�~? ቶ`�7��'�w��#���˚�\��_��� a��d���[Ҭњ��]ɢ�A$ �l�v=E�66d �WA\̬fsǭ}x;';���?�UW�O��{�&|_a�C� |ȹ��pka�|���zf[S�������[�Jcf�A�&�L�U)Pd+)�_�$1�0�z�'�v\u�' +;�!���dž�]h�N�{ku��<��a��.0�,��]q��ZKao=ILo�z�rb&�{@K�i*7nX).�/�̶��ӒU�v �B֝���a��n��تx ���P�AG7M4N�?r;Z�����7�@�wA�q��RM5�8ۭ ��g��8�g���G�Tſ�O�{2��P3r��6�W,/��kC���p�V���~�"���T���6�/<�4�U�>��T�H�Fc�T�D�^I���!�����=&\Em�>b�,|T��d���n��=@\Wzi���D��&�f���1�t�mC�Ih��m��&�������84�!H�i�|�Z���� ��W���g����8�h�B] OvQ�u����+�}n�� FE�+q�&j����I�u��&��=!��T�b�@�ք0 �D�W�W�t�V}�������^�g�Erb`j��2 �wr�\Y5��L�Ρ���_�bNU�)~�e�Z�U�*�����:�vƀu2�W-W��W{KKo0�)��G�K.��{̮���v�/��p� !�� �w;`��b ������F���/���:����I�lm��Vc�,x~m<=|�_�>n����(A�����{�膾���m�,{3 �ӀH=٘�%��[USd��!J�|�f_�/ �߻��)I%���G�ܑ�G |N������d��BU5��qvG�c,���A?!��w��� �S��-i���Fr�P�_��E�+��)��V��f��������~�����������}"sk��cHN�<� 5I�r��1gu�ݗ�,N�I��f��k�s���0��: 0�<�\ͩB�܄ �:�f2A��mҞ�Z�6��3��t�����͟~����J�R9�] �,h������Z�@�{����9��W�il!�:��P��P���wK)���p���!���KuB\�7 uI�?(���/��r3����v,\'�8��qUa�ء���!��(b��n?�YfӸ����r�$���ה�~��_�&�8g�<(Mx$ZO�������u`q��:�N�Q !�%`���h:�� �~>�D���m�^��[V!y�6=� ��m��ѡ��p4�Iꎸ��1cE��QS�ٷ��W�C����*�����Q��=��3���&���-#,åCCG�������9�i��3�C��S[t>���qm����B��s���������o��� J�^s|����r��\ԺΦ�a�{��1��wT'���� �̓Q���B��\xx}��8��Of!��U�n��f�����bA��UD�cC} �r�������c ���^�X���k�Ɩk�6��^E�C�E�sՀ`�Ⱦ,i��v�� ٺe˟�!�co�64x4��A�ah��ˏ<��%�@�*|�\�TY����#:9��|?S�[������G hUw9���z]��D��-J6�m,ʭ��2�Iz�4W9��&���t�߁ R�Z�gP��H�dj�`%ap}�^떟��*fb{�Q) Dd_V����$��,�߁� @D�&f�2��S6��M�ɤ�)Q\F�i���5p��Wb'PN�R�>�����9��]��\8{B8�� ��ю�������%� ӏۙ{]�j,_Y>��!�l���'���H�["��;c?cy��1< 0ϑ���/�AAЛ�� ; �j�(!��1 [)5ݻK ��A7��"[�%"���{��H ���V�� ���m�K���VLn��9鿹8�At΀@����f`�1y�rЅ��q��7Nf���x)y��, 0e�"{�ƨ�"� o �6� �.|Tm.���-r �G� [ed���–q���]�X�oG*�1>�� م�p_Y{δ(N�|s��^{i�`��͒ QӴx+X.ݕ�kP�g]�޿�4��Q|�O��h�*c�W�G�4{~x�k��A:�{Yu�倀#ތM�K!�e�;ȩ����r������'���D&H�$�0�ߜ�w��Sq dH��P�y����z����h��d��"�;0��#I2�F{����. W�wl���|>s�\ŌO�&bO/4(z9ܭua��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%Submenu hover adjustment. Automatically move up a submenu to fit into screen when some part of it goes beneath window. Pass a "true" value as an argument and submenu will have native browser scrollbars when necessary. */ (function($ , undefined) { if( ace.vars['very_old_ie'] ) return; //ignore IE7 & below var hasTouch = ace.vars['touch']; var nativeScroll = ace.vars['old_ie'] || hasTouch; var is_element_pos = 'getComputedStyle' in window ? //el.offsetHeight is used to force redraw and recalculate 'el.style.position' esp. for webkit! function(el, pos) { el.offsetHeight; return window.getComputedStyle(el).position == pos } : function(el, pos) { el.offsetHeight; return $(el).css('position') == pos } $(window).on('resize.sidebar.ace_hover', function() { $('.sidebar[data-sidebar-hover=true]').ace_sidebar_hover('update_vars').ace_sidebar_hover('reset'); }) $(document).on('settings.ace.ace_hover', function(e, event_name, event_val) { if(event_name == 'sidebar_collapsed') $('.sidebar[data-sidebar-hover=true]').ace_sidebar_hover('reset'); else if(event_name == 'navbar_fixed') $('.sidebar[data-sidebar-hover=true]').ace_sidebar_hover('update_vars'); }) var sidebars = []; function Sidebar_Hover(sidebar , settings) { var self = this, that = this; var attrib_values = ace.helper.getAttrSettings(sidebar, $.fn.ace_sidebar_hover.defaults); this.settings = $.extend({}, $.fn.ace_sidebar_hover.defaults, settings, attrib_values); var $sidebar = $(sidebar), nav_list = $sidebar.find('.nav-list').get(0); $sidebar.attr('data-sidebar-hover', 'true'); sidebars.push($sidebar); var sidebar_vars = {}; var old_ie = ace.vars['old_ie']; var scroll_right = false; //scroll style class if(hasTouch) self.settings.sub_hover_delay = parseInt(Math.max(self.settings.sub_hover_delay, 2500));//for touch device, delay is at least 2.5sec var $window = $(window); //navbar used for adding extra offset from top when adjusting submenu var $navbar = $('.navbar').eq(0); var navbar_fixed = $navbar.css('position') == 'fixed'; this.update_vars = function() { navbar_fixed = $navbar.css('position') == 'fixed'; } self.dirty = false; //on window resize or sidebar expand/collapse a previously "pulled up" submenu should be reset back to its default position //for example if "pulled up" in "responsive-min" mode, in "fullmode" should not remain "pulled up" this.reset = function() { if( self.dirty == false ) return; self.dirty = false;//so don't reset is not called multiple times in a row! $sidebar.find('.submenu').each(function() { var $sub = $(this), li = $sub.parent(); $sub.css({'top': '', 'bottom': '', 'max-height': ''}); if($sub.hasClass('ace-scroll')) { $sub.ace_scroll('disable'); } else { $sub.removeClass('sub-scroll'); } if( is_element_pos(this, 'absolute') ) $sub.addClass('can-scroll'); else $sub.removeClass('can-scroll'); li.removeClass('pull_up').find('.menu-text:first').css('margin-top', ''); }) $sidebar.find('.hover-show').removeClass('hover-show hover-shown hover-flip'); } this.updateStyle = function(newStyle) { sub_scroll_style = newStyle; $sidebar.find('.submenu.ace-scroll').ace_scroll('update', {styleClass: newStyle}); } this.changeDir = function(dir) { scroll_right = (dir === 'right'); } //update submenu scrollbars on submenu hide & show var lastScrollHeight = -1; //hide scrollbars if it's going to be not needed anymore! if(!nativeScroll) $sidebar.on('hide.ace.submenu.sidebar_hover', '.submenu', function(e) { if(lastScrollHeight < 1) return; e.stopPropagation(); var $sub = $(this).closest('.ace-scroll.can-scroll'); if($sub.length == 0 || !is_element_pos($sub[0], 'absolute')) return; if($sub[0].scrollHeight - this.scrollHeight < lastScrollHeight) { $sub.ace_scroll('disable'); } }); //reset scrollbars if(!nativeScroll) $sidebar.on('shown.ace.submenu.sidebar_hover hidden.ace.submenu.sidebar_hover', '.submenu', function(e) { if(lastScrollHeight < 1) return; var $sub = $(this).closest('.ace-scroll.can-scroll'); if($sub.length == 0 || !is_element_pos($sub[0], 'absolute') ) return; var sub_h = $sub[0].scrollHeight; if(lastScrollHeight > 14 && sub_h - lastScrollHeight > 4) { $sub.ace_scroll('enable').ace_scroll('reset');//don't update track position } else { $sub.ace_scroll('disable'); } }); /////////////////////// var currentScroll = -1; //some mobile browsers don't have mouseenter var event_1 = !hasTouch ? 'mouseenter.sub_hover' : 'touchstart.sub_hover';// pointerdown.sub_hover'; var event_2 = !hasTouch ? 'mouseleave.sub_hover' : 'touchend.sub_hover touchcancel.sub_hover';// pointerup.sub_hover pointercancel.sub_hover'; $sidebar.on(event_1, '.nav-list li, .sidebar-shortcuts', function (e) { sidebar_vars = $sidebar.ace_sidebar('vars'); //ignore if collapsible mode (mobile view .navbar-collapse) so it doesn't trigger submenu movements //or return if horizontal but not mobile_view (style 1&3) if( sidebar_vars['collapsible'] /**|| sidebar_vars['horizontal']*/ ) return; var $this = $(this); var shortcuts = false; var has_hover = $this.hasClass('hover'); var sub = $this.find('> .submenu').get(0); if( !(sub || ((this.parentNode == nav_list || has_hover || (shortcuts = $this.hasClass('sidebar-shortcuts'))) /**&& sidebar_vars['minimized']*/)) ) { if(sub) $(sub).removeClass('can-scroll'); return;//include .compact and .hover state as well? } var target_element = sub, is_abs = false; if( !target_element && this.parentNode == nav_list ) target_element = $this.find('> a > .menu-text').get(0); if( !target_element && shortcuts ) target_element = $this.find('.sidebar-shortcuts-large').get(0); if( (!target_element || !(is_abs = is_element_pos(target_element, 'absolute'))) && !has_hover ) { if(sub) $(sub).removeClass('can-scroll'); return; } var sub_hide = getSubHide(this); //var show_sub = false; if(sub) { if(is_abs) { self.dirty = true; var newScroll = ace.helper.scrollTop(); //if submenu is becoming visible for first time or document has been scrolled, then adjust menu if( !sub_hide.is_visible() || (!hasTouch && newScroll != currentScroll) || old_ie ) { //try to move/adjust submenu if the parent is a li.hover or if submenu is minimized //if( is_element_pos(sub, 'absolute') ) {//for example in small device .hover > .submenu may not be absolute anymore! $(sub).addClass('can-scroll'); //show_sub = true; if(!old_ie && !hasTouch) adjust_submenu.call(this, sub); else { //because ie8 needs some time for submenu to be displayed and real value of sub.scrollHeight be kicked in var that = this; setTimeout(function() { adjust_submenu.call(that, sub) }, 0) } //} //else $(sub).removeClass('can-scroll'); } currentScroll = newScroll; } else { $(sub).removeClass('can-scroll'); } } //if(show_sub) sub_hide.show(); }).on(event_2, '.nav-list li, .sidebar-shortcuts', function (e) { sidebar_vars = $sidebar.ace_sidebar('vars'); if( sidebar_vars['collapsible'] /**|| sidebar_vars['horizontal']*/ ) return; if( !$(this).hasClass('hover-show') ) return; getSubHide(this).hideDelay(); }); function subHide(li_sub) { var self = li_sub, $self = $(self); var timer = null; var visible = false; this.show = function() { if(timer != null) clearTimeout(timer); timer = null; $self.addClass('hover-show hover-shown'); visible = true; //let's hide .hover-show elements that are not .hover-shown anymore (i.e. marked for hiding in hideDelay) for(var i = 0; i < sidebars.length ; i++) { sidebars[i].find('.hover-show').not('.hover-shown').each(function() { getSubHide(this).hide(); }) } } this.hide = function() { visible = false; $self.removeClass('hover-show hover-shown hover-flip'); if(timer != null) clearTimeout(timer); timer = null; var sub = $self.find('> .submenu').get(0); if(sub) getSubScroll(sub, 'hide'); } this.hideDelay = function(callback) { if(timer != null) clearTimeout(timer); $self.removeClass('hover-shown');//somehow marked for hiding timer = setTimeout(function() { visible = false; $self.removeClass('hover-show hover-flip'); timer = null; var sub = $self.find('> .submenu').get(0); if(sub) getSubScroll(sub, 'hide'); if(typeof callback === 'function') callback.call(this); }, that.settings.sub_hover_delay); } this.is_visible = function() { return visible; } } function getSubHide(el) { var sub_hide = $(el).data('subHide'); if(!sub_hide) $(el).data('subHide', (sub_hide = new subHide(el))); return sub_hide; } function getSubScroll(el, func) { var sub_scroll = $(el).data('ace_scroll'); if(!sub_scroll) return false; if(typeof func === 'string') { sub_scroll[func](); return true; } return sub_scroll; } function adjust_submenu(sub) { var $li = $(this); var $sub = $(sub); sub.style.top = ''; sub.style.bottom = ''; var menu_text = null if( sidebar_vars['minimized'] && (menu_text = $li.find('.menu-text').get(0)) ) { //2nd level items don't have .menu-text menu_text.style.marginTop = ''; } var scroll = ace.helper.scrollTop(); var navbar_height = 0; var $scroll = scroll; if( navbar_fixed ) { navbar_height = sidebar.offsetTop;//$navbar.height(); $scroll += navbar_height + 1; //let's avoid our submenu from going below navbar //because of chrome z-index stacking issue and firefox's normal .submenu over fixed .navbar flicker issue } var off = $li.offset(); off.top = parseInt(off.top); var extra = 0, parent_height; sub.style.maxHeight = '';//otherwise scrollHeight won't be consistent in consecutive calls!? var sub_h = sub.scrollHeight; var parent_height = $li.height(); if(menu_text) { extra = parent_height; off.top += extra; } var sub_bottom = parseInt(off.top + sub_h) var move_up = 0; var winh = $window.height(); //if the bottom of menu is going to go below visible window var top_space = parseInt(off.top - $scroll - extra);//available space on top var win_space = winh;//available window space var horizontal = sidebar_vars['horizontal'], horizontal_sub = false; if(horizontal && this.parentNode == nav_list) { move_up = 0;//don't move up first level submenu in horizontal mode off.top += $li.height(); horizontal_sub = true;//first level submenu } if(!horizontal_sub && (move_up = (sub_bottom - (winh + scroll))) >= 0 ) { //don't move up more than available space move_up = move_up < top_space ? move_up : top_space; //move it up a bit more if there's empty space if(move_up == 0) move_up = 20; if(top_space - move_up > 10) { move_up += parseInt(Math.min(25, top_space - move_up)); } //move it down if submenu's bottom is going above parent LI if(off.top + (parent_height - extra) > (sub_bottom - move_up)) { move_up -= (off.top + (parent_height - extra) - (sub_bottom - move_up)); } if(move_up > 0) { sub.style.top = -(move_up) + 'px'; if( menu_text ) { menu_text.style.marginTop = -(move_up) + 'px'; } } } if(move_up < 0) move_up = 0;//when it goes below var pull_up = move_up > 0 && move_up > parent_height - 20; if(pull_up) { $li.addClass('pull_up'); } else $li.removeClass('pull_up'); //flip submenu if out of window width if(horizontal) { if($li.parent().parent().hasClass('hover-flip')) $li.addClass('hover-flip');//if a parent is already flipped, flip it then! else { var sub_off = $sub.offset(); var sub_w = $sub.width(); var win_w = $window.width(); if(sub_off.left + sub_w > win_w) { $li.addClass('hover-flip'); } } } //don't add scrollbars if it contains .hover menus var has_hover = $li.hasClass('hover') && !sidebar_vars['mobile_view']; if(has_hover && $sub.find('> li > .submenu').length > 0) return; //if( ) { var scroll_height = (win_space - (off.top - scroll)) + (move_up); //if after scroll, the submenu is above parent LI, then move it down var tmp = move_up - scroll_height; if(tmp > 0 && tmp < parent_height) scroll_height += parseInt(Math.max(parent_height, parent_height - tmp)); scroll_height -= 5; if(scroll_height < 90) { return; } var ace_scroll = false; if(!nativeScroll) { ace_scroll = getSubScroll(sub); if(ace_scroll == false) { $sub.ace_scroll({ //hideOnIdle: true, observeContent: true, detached: true, updatePos: false, reset: true, mouseWheelLock: true, styleClass: self.settings.sub_scroll_style }); ace_scroll = getSubScroll(sub); var track = ace_scroll.get_track(); if(track) { //detach it from body and insert it after submenu for better and cosistent positioning $sub.after(track); } } ace_scroll.update({size: scroll_height}); } else { $sub .addClass('sub-scroll') .css('max-height', (scroll_height)+'px') } lastScrollHeight = scroll_height; if(!nativeScroll && ace_scroll) { if(scroll_height > 14 && sub_h - scroll_height > 4) { ace_scroll.enable() ace_scroll.reset(); } else { ace_scroll.disable(); } ////////////////////////////////// var track = ace_scroll.get_track(); if(track) { track.style.top = -(move_up - extra - 1) + 'px'; var off = $sub.position(); var left = off.left if( !scroll_right ) { left += ($sub.outerWidth() - ace_scroll.track_size()); } else { left += 2; } track.style.left = parseInt(left) + 'px'; if(horizontal_sub) {//first level submenu track.style.left = parseInt(left - 2) + 'px'; track.style.top = parseInt(off.top) + (menu_text ? extra - 2 : 0) + 'px'; } } } //} //again force redraw for safari! if( ace.vars['safari'] ) { ace.helper.redraw(sub) } } } ///////////////////////////////////////////// $.fn.ace_sidebar_hover = function (option, value) { var method_call; var $set = this.each(function () { var $this = $(this); var data = $this.data('ace_sidebar_hover'); var options = typeof option === 'object' && option; if (!data) $this.data('ace_sidebar_hover', (data = new Sidebar_Hover(this, options))); if (typeof option === 'string' && typeof data[option] === 'function') { method_call = data[option](value); } }); return (method_call === undefined) ? $set : method_call; } $.fn.ace_sidebar_hover.defaults = { 'sub_sub_hover_delay': 750, 'sub_scroll_style': 'no-track scroll-thin' } })(window.jQuery);