PageSourceSearch

https://enhancedif.org/sites/default/files/js/optimized/js_Q8Rho8c…lbF1v7eNxLtg3BlO_E2na2chsYlN2slQg.js?tkmtl3

js enhancedif.org collected 2026-10-02 03:47:37 UTC 9,330 bytes, 36 lines download raw bytes

1/* Source and licensing information for the line(s) below can be found at https://trade4devnews.enhancedif.org/libraries/drupal-superfish/sfsmallscreen.js. */
2(function($){$.fn.sfsmallscreen=function(options){options=$.extend({mode:'inactive',type:'accordion',breakpoint:768,breakpointUnit:'px',useragent:'',title:'',addSelected:false,menuClasses:false,hyperlinkClasses:false,excludeClass_menu:'',excludeClass_hyperlink:'',includeClass_menu:'',includeClass_hyperlink:'',accordionButton:1,expandText:'Expand',collapseText:'Collapse'},options);function refine(menu){const refined=menu.clone();const rm=refined.find('span.sf-sub-indicator');const rh=refined.find('.sf-smallscreen-remove');const mm=refined.find('ul.sf-multicolumn');for(let a=0;a<rh.length;a++){rh.eq(a).replaceWith(rh.eq(a).html());}
3if(options.accordionButton===2||options.type==='select'){for(let b=0;b<rm.length;b++){rm.eq(b).remove();}}
4if(mm.length>0){mm.removeClass('sf-multicolumn');const ol=refined.find('div.sf-multicolumn-column > ol');for(let o=0;o<ol.length;o++){ol.eq(o).replaceWith('<ul>'+ol.eq(o).html()+'</ul>');}
5const elements=['div.sf-multicolumn-column','.sf-multicolumn-wrapper > ol','li.sf-multicolumn-wrapper'];for(let i=0;i<elements.length;i++){let obj=refined.find(elements[i]);for(let t=0;t<obj.length;t++){obj.eq(t).replaceWith(obj.eq(t).html());}}
6refined.find('.sf-multicolumn-column').removeClass('sf-multicolumn-column');}
7refined.add(refined.find('*')).css({width:''});return refined;}
8function toSelect(menu,level){let items='';const childLI=$(menu).children('li');for(let a=0;a<childLI.length;a++){const list=childLI.eq(a)
9const parent=list.children('a, span');for(let b=0;b<parent.length;b++){const item=parent.eq(b);const path=(item.is('a')&&!!item.attr('href'))?item.attr('href'):'';const itemClone=item.clone();let classes=(options.hyperlinkClasses)?((options.excludeClass_hyperlink&&itemClone.hasClass(options.excludeClass_hyperlink))?itemClone.removeClass(options.excludeClass_hyperlink).attr('class'):itemClone.attr('class')):'';classes=(options.includeClass_hyperlink&&!itemClone.hasClass(options.includeClass_hyperlink))?((options.hyperlinkClasses)?itemClone.addClass(options.includeClass_hyperlink).attr('class'):options.includeClass_hyperlink):classes;if(options.addSelected&&item.hasClass('active')){classes+=' active';}
10classes=classes?' class="'+classes+'"':'';const disable=path===''||path==='#'?' disabled="disabled"':'';const subIndicator=1<level?Array(level).join('-')+' ':'';items+='<option value="'+path+'"'+classes+disable+'>'+subIndicator+item.text().trim()+'</option>';const childUL=list.find('> ul');for(let u=0;u<childUL.length;u++){items+=toSelect(childUL.eq(u),level+1);}}}
11return items;}
12function convert(menu){const menuID=menu.attr('id');const refinedMenu=refine(menu);if(options.type==='accordion'){const toggleID=menuID+'-toggle';const accordionID=menuID+'-accordion';if($('#'+accordionID).length!==0){return;}
13const styleClass=menu.attr('class').split(' ').filter(function(item){return item.indexOf('sf-style-')>-1?item:'';});const accordion=$(refinedMenu).attr('id',accordionID);accordion.removeClass('sf-horizontal sf-vertical sf-navbar sf-shadow sf-js-enabled');accordion.addClass('sf-accordion sf-hidden');accordion.find('li').each(function(){$(this).removeAttr('style').removeClass('sfHover').attr('id',$(this).attr('id')+'-accordion');});accordion.children('ul').removeAttr('style').not('.sf-hidden').addClass('sf-hidden');accordion.find('ul').each(function(){$(this).removeAttr('style').not('.sf-hidden').addClass('sf-hidden');});const toggle='<div class="sf-accordion-toggle '+styleClass+'"><a href="#" id="'+toggleID+'"><span>'+options.title+'</span></a></div>';if(options.accordionButton===2){accordion.addClass('sf-accordion-with-buttons');const parent=accordion.find('li.menuparent');for(let i=0;i<parent.length;i++){parent.eq(i).prepend('<a href="#" class="sf-accordion-button">'+options.expandText+'</a>');}}
14menu.before(toggle).before(accordion).hide();const $accordionElement=$('#'+accordionID);const buttonElement=(options.accordionButton<2)?'a.menuparent,span.nolink.menuparent':'a.sf-accordion-button';const $button=$accordionElement.find(buttonElement);$('#'+toggleID).on('click',function(e){e.preventDefault();$(this).toggleClass('sf-expanded');if($accordionElement.hasClass('sf-expanded')){$accordionElement.add($accordionElement.find('li.sf-expanded')).removeClass('sf-expanded').end().children('ul').hide().end().hide().addClass('sf-hidden').show();if(options.accordionButton===2){$accordionElement.find('a.sf-accordion-button').text(options.expandText);}}
15else{$accordionElement.addClass('sf-expanded').hide().removeClass('sf-hidden').show();}});$button.on('click',function(e){if($(this).closest('li').children('ul').length===0){return;}
16e.preventDefault();const $parent=$(this).closest('li');if(options.accordionButton===1&&$parent.children('a.menuparent,span.nolink.menuparent').length>0&&$parent.children('ul').children('li.sf-clone-parent').length===0){let cloneLink=$parent.children('a.menuparent').clone();cloneLink.removeClass('menuparent sf-with-ul').children('.sf-sub-indicator').remove();cloneLink=$('<li class="sf-clone-parent" />').html(cloneLink);$parent.children('ul').addClass('sf-has-clone-parent').prepend(clone
16Link);}
17if(options.accordionButton===0||options.accordionButton===1){$accordionElement.find('a.is-active:not(.menuparent)').on('click',function(e){$accordionElement.removeClass('sf-expanded').addClass('sf-hidden');});}
18if(options.accordionButton===2){$accordionElement.find('a.is-active').on('click',function(e){$accordionElement.removeClass('sf-expanded').addClass('sf-hidden');});}
19if($parent.hasClass('sf-expanded')){$parent.children('ul').slideUp('fast',function(){$(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidden').show();});if(options.accordionButton===2&&$parent.children('.sf-accordion-button').length>0){$parent.children('.sf-accordion-button').text(options.expandText);}}
20else{$parent.children('ul').hide().removeClass('sf-hidden').slideDown('fast').end().addClass('sf-expanded').children('a.sf-accordion-button').text(options.collapseText).end().siblings('li.sf-expanded').children('ul').slideUp('fast',function(){$(this).closest('li').removeClass('sf-expanded').end().addClass('sf-hidden').show();}).parent().children('a.sf-accordion-button').text(options.expandText);}});}
21else{const menuClone=menu.clone();let classes=options.menuClasses?((options.excludeClass_menu&&menuClone.hasClass(options.excludeClass_menu))?menuClone.removeClass(options.excludeClass_menu).attr('class'):menuClone.attr('class')):'';classes=options.includeClass_menu&&!menuClone.hasClass(options.includeClass_menu)?((options.menuClasses)?menuClone.addClass(options.includeClass_menu).attr('class'):options.includeClass_menu):classes;classes=classes?' class="'+classes+'"':'';if($('#'+menuID+'-select').length!==0){return;}
22const newMenu=toSelect(refinedMenu,1);const selectList=$('<select '+classes+' id="'+menuID+'-select"/>').html('<option>'+options.title+'</option>'+newMenu).change(function(){if($('option:selected',this).index()){window.location=selectList.val();}});if(options.addSelected){selectList.find('.active').attr('selected',!0);}
23menu.before(selectList).hide();}}
24function turnBack(menu){const id='#'+menu.attr('id');$(id+'-'+options.type).remove();if(options.type==='accordion'){$(id+'-toggle').parent('div').remove();}
25$(id).css('display','');}
26for(let s=0;s<this.length;s++){const menu=$(this).eq(s);const mode=options.mode;if(menu.children('li').length===0){}
27else if(mode==='always_active'){convert(menu);}
28else if(mode==='window_width'){const breakpoint=options.breakpointUnit==='em'?options.breakpoint*parseFloat($('body').css('font-size')):options.breakpoint;const windowWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;let timer;if((typeof Modernizr==='undefined'||typeof Modernizr.mq!=='function')&&windowWidth<breakpoint){convert(menu);}
29else if(typeof Modernizr!=='undefined'&&typeof Modernizr.mq==='function'&&Modernizr.mq('(max-width:'+(breakpoint-1)+'px)')){convert(menu);}
30$(window).resize(function(){clearTimeout(timer);timer=setTimeout(function(){const windowWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;if((typeof Modernizr==='undefined'||typeof Modernizr.mq!=='function')&&windowWidth<breakpoint){convert(menu);}
31else if(typeof Modernizr!=='undefined'&&typeof Modernizr.mq==='function'&&Modernizr.mq('(max-width:'+(breakpoint-1)+'px)')){convert(menu);}
32else{turnBack(menu);}},50);});}
33else if(mode==='useragent_custom'){if(options.useragent!==''){const ua=RegExp(options.useragent,'i');if(navigator.userAgent.match(ua)){convert(menu);}}}
34else if(mode==='useragent_predefined'&&navigator.userAgent.match(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i)){convert(menu);}}
35return this;}})(jQuery);
36/* Source and licensing information for the above line(s) can be found at https://trade4devnews.enhancedif.org/libraries/drupal-superfish/sfsmallscreen.js. */

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.