PageSourceSearch

https://bsideradio.org/wp-content/themes/great/js/customscript.js

js bsideradio.org collected 2026-10-06 20:46:48 UTC 8,704 bytes, 177 lines download raw bytes

1	/*
2 * Superfish v1.4.8 - jQuery menu widget
3 * Copyright (c) 2008 Joel Birch
4 *
5 * Dual licensed under the MIT and GPL licenses:
6 * 	http://www.opensource.org/licenses/mit-license.php
7 * 	http://www.gnu.org/licenses/gpl.html
8 *
9 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
10 */
11(function($){$.fn.superfish=function(op){var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"> &#xbb;</span>'].join("")),over=function(){var $$=$(this),menu=getMenu($$);clearTimeout(menu.sfTimer);$$.showSuperfishUl().siblings().hideSuperfishUl();},out=function(){var $$=$(this),menu=getMenu($$),o=sf.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray($$[0],o.$path)>-1);$$.hideSuperfishUl();if(o.$path.length&&$$.parents(["li.",o.hoverClass].join("")).length<1){over.call(o.$path);}},o.delay);},getMenu=function($menu){var menu=$menu.parents(["ul.",c.menuClass,":first"].join(""))[0];sf.op=sf.o[menu.serial];return menu;},addArrow=function($a){$a.addClass(c.anchorClass).append($arrow.clone());};return this.each(function(){var s=this.serial=sf.o.length;var o=$.extend({},sf.defaults,op);o.$path=$("li."+o.pathClass,this).slice(0,o.pathLevels).each(function(){$(this).addClass([o.hoverClass,c.bcClass].join(" ")).filter("li:has(ul)").removeClass(o.pathClass);});sf.o[s]=sf.op=o;$("li:has(ul)",this)[($.fn.hoverIntent&&!o.disableHI)?"hoverIntent":"hover"](over,out).each(function(){if(o.autoArrows){addArrow($(">a:first-child",this));}}).not("."+c.bcClass).hideSuperfishUl();var $a=$("a",this);$a.each(function(i){var $li=$a.eq(i).parents("li");$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});});o.onInit.call(this);}).each(function(){var menuClasses=[c.menuClass];if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7)){menuClasses.push(c.shadowClass);}$(this).addClass(menuClasses.join(" "));});};var sf=$.fn.superfish;sf.o=[];sf.op={};sf.IE7fix=function(){var o=sf.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined){this.toggleClass(sf.c.shadowClass+"-off");}};sf.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};sf.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=sf.op,not=(o.retainPath===true)?o.$path:"";o.retainPath=false;var $ul=$(["li.",o.hoverClass].join(""),this).add(this).not(not).removeClass(o.hoverClass).find(">ul").hide().css("visibility","hidden");o.onHide.call($ul);return this;},showSuperfishUl:function(){var o=sf.op,sh=sf.c.shadowClass+"-off",$ul=this.addClass(o.hoverClass).find(">ul:hidden").css("visibility","visible");sf.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){sf.IE7fix.call($ul);o.onShow.call($ul);});return this;}});})(jQuery);
12	
13	$(document).ready(function($) { 
14	
15	$('ul.menu, ul#children, ul.sub-menu').superfish({ 
16		delay:       100,								// 0.1 second delay on mouseout 
17		animation:   {opacity:'show',height:'show'},	// fade-in and slide-down animation 
18		dropShadows: false								// disable drop shadows 
19	});
20	
21});
22
23$(document).ready(function() {
24	// Create the dropdown base
25   $("<select />").appendTo("#navigation");
26      
27      // Create default option "Go to..."
28      $("<option />", {
29         "selected": "selected",
30         "value"   : "",
31         "text"    : "Go to..."
32      }).appendTo("#navigation select");
33      
34      // Populate dropdown with menu items
35      $("#navigation > ul > li:not([data-toggle])").each(function() {
36      
37      	var el = $(this);
38      
39      	var hasChildren = el.find("ul"),
40      	    children    = el.find("li > a");
41       
42      	if (hasChildren.length) {
43      	
44      		$("<optgroup />", {
45      			"label": el.find("> a").text()
46      		}).appendTo("#navigation select");
47      		
48      		children.each(function() {
49      		      			
50      			$("<option />", {
51					"value"   : $(this).attr("href"),
52      				"text": " - " + $(this).text()
53      			}).appendTo("optgroup:last");
54      		
55      		});
56      		      	
57      	} else {
58      	
59      		$("<option />", {
60	           "value"   : el.find("> a").attr("href"),
61	           "text"    : el.find("> a").text()
62	       }).appendTo("#navigation select");
63      	
64      	} 
65             
66      });
67 
68      $("#navigation select").change(function() {
69        window.location = $(this).find("option:selected").val();
70      });
71	
72	//END -- Menus to <SELECT>	
73	
74	}); //END -- JQUERY document.ready
75	
76jQuery(document).ready(function(){
77
78        // UL = .tabs
79        // Tab contents = .inside
80        
81       var tag_cloud_class = '#tag-cloud'; 
82       
83              //Fix for tag clouds - unexpected height before .hide() 
84            var tag_cloud_height = jQuery('#tag-cloud').height();
85
86       jQuery('.inside ul li:last-child').css('border-bottom','0px') // remove last border-bottom from list in tab conten
87       jQuery('.tabs').each(function(){
88       	jQuery(this).children('li').children('a:first').addClass('selected'); // Add .selected class to first tab on load
89       });
90       jQuery('.inside > *').hide();
91       jQuery('.inside > *:first-child').show();
92       
93
94       jQuery('.tabs li a').click(function(evt){ // Init Click funtion on Tabs
95        
96            var clicked_tab_ref = jQuery(this).attr('href'); // Strore Href value
97            
98            jQuery(this).parent().parent().children('li').children('a').removeClass('selected'); //Remove selected from all tabs
99            jQuery(this).addClass('selected');
100            jQuery(this).parent().parent().parent().children('.inside').children('*').hide();
101            
102            /*
103            if(clicked_tab_ref === tag_cloud_class) // Initiate tab fix (+20 for padding fix)
104            {
105                clicked_tab_ref_height = tag_cloud_height + 20;
106            }
107            else // Other height calculations
108            {
109                clicked_tab_ref_height = jQuery('.inside ' + clicked_tab_ref).height();
110            }
111            */
112             //jQuery('.inside').stop().animate({
113            //    height: clicked_tab_ref_height
114            // },400,"linear",function(){
115                    //Callback after new tab content's height animation
116                    jQuery('.inside ' + clicked_tab_ref).fadeIn(500);
117            // })
118             
119             evt.preventDefault();
120
121        })
122    
123})
124
125// Scroll to Top script
126jQuery(document).ready(function($){
127    $('a[href=#top]').click(function(){
128        $('html, body').animate({scrollTop:0}, 'slow');
129        return false;
130    });
131$(".togglec").hide();
132    	
133    	$(".togglet").click(function(){
134    	
135    	$(this).toggleClass("toggleta").next(".togglec").slideToggle("normal");
136    	   return true;
137    	});
138});
139
140function swt_format_twitter(twitters) {
141  var statusHTML = [];
142  for (var i=0; i<twitters.length; i++){
143    var username = twitters[i].user.screen_name;
144    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
145      return '<a href="'+url+'">'+url+'</a>';
146    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
147      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
148    });
149    statusHTML.push('<li><span>'+status+'</span> <a style="font-size:90%; color:#bbb;" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'">'+relative_time(twitters[i].created_at)+'</a></li>');
150  }
151  return statusHTML.join('');
152}
153
154function relative_time(time_value) {
155  var values = time_value.split(" ");
156  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
157  var parsed_date = Date.parse(time_value);
158  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
159  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
160  delta = delta + (relative_to.getTimezoneOffset() * 60);
161
162  if (delta < 60) {
163    return 'less than a minute ago';
164  } else if(delta < 120) {
165    return 'about a minute ago';
166  } else if(delta < (60*60)) {
167    return (parseInt(delta / 60)).toString() + ' minutes ago';
168  } else if(delta < (120*60)) {
169    return 'about an hour ago';
170  } else if(delta < (24*60*60)) {
171    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
172  } else if(delta < (48*60*60)) {
173    return '1 day ago';
174  } else {
175    return (parseInt(delta / 86400)).toString() + ' days ago';
176  }
177}

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.