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,'"> »</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 $('#navigation ul.menu, #navigation ul#children, #navigation 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 76// Tabs 77jQuery(document).ready(function($){ 78 $('.stabs a').click(function(){ 79 switch_tabs($(this)); 80 }); 81 switch_tabs($('.defaulttab')); 82 function switch_tabs(obj) { 83 $('.stab-content').hide(); 84 $('.stabs a').removeClass("selected"); 85 var id = obj.attr("rel"); 86 $('#'+id).show(); 87 obj.addClass("selected"); 88 } 89}); 90 91jQuery(document).ready(function(){ 92 93 // UL = .tabs 94 // Tab contents = .inside 95 96 var tag_cloud_class = '#tag-cloud'; 97 98 //Fix for tag clouds - unexpected height before .hide() 99 var tag_cloud_height = jQuery('#tag-cloud').height(); 100 101 jQuery('.inside ul li:last-child').css('border-bottom','0px') // remove last border-bottom from list in tab conten 102 jQuery('.tabs').each(function(){ 103 jQuery(this).children('li').children('a:first').addClass('selected'); // Add .selected class to first tab on load 104 }); 105 jQuery('.inside > *').hide(); 106 jQuery('.inside > *:first-child').show(); 107 108 109 jQuery('.tabs li a').click(function(evt){ // Init Click funtion on Tabs 110 111 var clicked_tab_ref = jQuery(this).attr('href'); // Strore Href value 112 113 jQuery(this).parent().parent().children('li').children('a').removeClass('selected'); //Remove selected from all tabs 114 jQuery(this).addClass('selected'); 115 jQuery(this).parent().parent().parent().children('.inside').children('*').hide(); 116 117 /* 118 if(clicked_tab_ref === tag_cloud_class) // Initiate tab fix (+20 for padding fix) 119 { 120 clicked_tab_ref_height = tag_cloud_height + 20; 121 } 122 else // Other height calculations 123 { 124 clicked_tab_ref_height = jQuery('.inside ' + clicked_tab_ref).height(); 125 } 126 */ 127 //jQuery('.inside').stop().animate({ 128 // height: clicked_tab_ref_height 129 // },400,"linear",function(){ 130 //Callback after new tab content's height animation 131 jQuery('.inside ' + clicked_tab_ref).fadeIn(500); 132 // }) 133 134 evt.preventDefault(); 135 136 }) 137 138}) 139 140 141// Scroll to Top script 142jQuery(document).ready(function($){ 143 $('a[href=#top]').click(function(){ 144 $('html, body').animate({scrollTop:0}, 'slow'); 145 return false;
146 }); 147$(".togglec").hide(); 148 149 $(".togglet").click(function(){ 150 151 $(this).toggleClass("toggleta").next(".togglec").slideToggle("normal"); 152 return true; 153 }); 154}); 155 156function swt_format_twitter(twitters) { 157 var statusHTML = []; 158 for (var i=0; i<twitters.length; i++){ 159 var username = twitters[i].user.screen_name; 160 var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) { 161 return '<a href="'+url+'">'+url+'</a>'; 162 }).replace(/\B@([_a-z0-9]+)/ig, function(reply) { 163 return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>'; 164 }); 165 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>'); 166 } 167 return statusHTML.join(''); 168} 169 170function relative_time(time_value) { 171 var values = time_value.split(" "); 172 time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3]; 173 var parsed_date = Date.parse(time_value); 174 var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); 175 var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); 176 delta = delta + (relative_to.getTimezoneOffset() * 60); 177 178 if (delta < 60) { 179 return 'less than a minute ago'; 180 } else if(delta < 120) { 181 return 'about a minute ago'; 182 } else if(delta < (60*60)) { 183 return (parseInt(delta / 60)).toString() + ' minutes ago'; 184 } else if(delta < (120*60)) { 185 return 'about an hour ago'; 186 } else if(delta < (24*60*60)) { 187 return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; 188 } else if(delta < (48*60*60)) { 189 return '1 day ago'; 190 } else { 191 return (parseInt(delta / 86400)).toString() + ' days ago'; 192 } 193}
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.