PageSourceSearch

https://www.chinesesouppot.com/wp-content/themes/suffusion-4-4-7/scripts/suffusion.js?ver=4.4.7

js chinesesouppot.com collected 2026-10-02 11:13:18 UTC 33,979 bytes, 820 lines download raw bytes

1/*************************************************
2**  jQuery Masonry version v2.1.04
3**  Copyright David DeSandro, licensed MIT
4**  http://desandro.com/resources/jquery-masonry
5**************************************************/
6(function(a,b,c){"use strict";var d=b.event,e;d.special.smartresize={setup:function(){b(this).bind("resize",d.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",d.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",e&&clearTimeout(e),e=setTimeout(function(){jQuery.event.handle.apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Mason=function(a,c){this.element=b(c),this._create(a),this._init()},b.Mason.settings={isResizable:!0,isAnimated:!1,animationOptions:{queue:!1,duration:500},gutterWidth:0,isRTL:!1,isFitWidth:!1,containerStyle:{position:"relative"}},b.Mason.prototype={_filterFindBricks:function(a){var b=this.options.itemSelector;return b?a.filter(b).add(a.find(b)):a},_getBricks:function(a){var b=this._filterFindBricks(a).css({position:"absolute"}).addClass("masonry-brick");return b},_create:function(c){this.options=b.extend(!0,{},b.Mason.settings,c),this.styleQueue=[];var d=this.element[0].style;this.originalStyle={height:d.height||""};var e=this.options.containerStyle;for(var f in e)this.originalStyle[f]=d[f]||"";this.element.css(e),this.horizontalDirection=this.options.isRTL?"right":"left",this.offset={x:parseInt(this.element.css("padding-"+this.horizontalDirection),10),y:parseInt(this.element.css("padding-top")+16,10)},this.isFluid=this.options.columnWidth&&typeof this.options.columnWidth=="function";var g=this;setTimeout(function(){g.element.addClass("masonry")},0),this.options.isResizable&&b(a).bind("smartresize.masonry",function(){g.resize()}),this.reloadItems()},_init:function(a){this._getColumns(),this._reLayout(a)},option:function(a,c){b.isPlainObject(a)&&(this.options=b.extend(!0,this.options,a))},layout:function(a,b){for(var c=0,d=a.length;c<d;c++)this._placeBrick(a[c]);var e={};e.height=Math.max.apply(Math,this.colYs);if(this.options.isFitWidth){var f=0;c=this.cols;while(--c){if(this.colYs[c]!==0)break;f++}e.width=(this.cols-f)*this.columnWidth-this.options.gutterWidth}this.styleQueue.push({$el:this.element,style:e});var g=this.isLaidOut?this.options.isAnimated?"animate":"css":"css",h=this.options.animationOptions,i;for(c=0,d=this.styleQueue.length;c<d;c++)i=this.styleQueue[c],i.$el[g](i.style,h);this.styleQueue=[],b&&b.call(a),this.isLaidOut=!0},_getColumns:function(){var a=this.options.isFitWidth?this.element.parent():this.element,b=a.width();this.columnWidth=this.isFluid?this.options.columnWidth(b):this.options.columnWidth||this.$bricks.outerWidth(!0)||b,this.columnWidth+=this.options.gutterWidth,this.cols=Math.floor((b+this.options.gutterWidth)/this.columnWidth),this.cols=Math.max(this.cols,1)},_placeBrick:function(a){var c=b(a),d,e,f,g,h;d=Math.ceil(c.outerWidth(!0)/(this.columnWidth+this.options.gutterWidth)),d=Math.min(d,this.cols);if(d===1)f=this.colYs;else{e=this.cols+1-d,f=[];for(h=0;h<e;h++)g=this.colYs.slice(h,h+d),f[h]=Math.max.apply(Math,g)}var i=Math.min.apply(Math,f),j=0;for(var k=0,l=f.length;k<l;k++)if(f[k]===i){j=k;break}var m={top:i+this.offset.y};m[this.horizontalDirection]=this.columnWidth*j+this.offset.x,this.styleQueue.push({$el:c,style:m});var n=i+c.outerHeight(!0),o=this.cols+1-l;for(k=0;k<o;k++)this.colYs[j+k]=n},resize:function(){var a=this.cols;this._getColumns(),(this.isFluid||this.cols!==a)&&this._reLayout()},_reLayout:function(a){var b=this.cols;this.colYs=[];while(b--)this.colYs.push(0);this.layout(this.$bricks,a)},reloadItems:function(){this.$bricks=this._getBricks(this.element.children())},reload:function(a){this.reloadItems(),this._init(a)},appended:function(a,b,c){if(b){this._filterFindBricks(a).css({top:this.element.height()});var d=this;setTimeout(function(){d._appended(a,c)},1)}else this._appended(a,c)},_appended:function(a,b){var c=this._getBricks(a);this.$bricks=this.$bricks.add(c),this.layout(c,b)},remove:function(a){this.$bricks=this.$bricks.not(a),a.remove()},destroy:function(){this.$bricks.removeClass("masonry-brick").each(function(){this.style.position="",this.style.top="",this.style.left=""});var c=this.element[0].style;for(var d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".masonry").removeClass("masonry").removeData("masonry"),b(a).unbind(".masonry")}},b.fn.imagesLoaded=function(a){function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}function h(){a.call(c,d)}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a});return c};var f=function(b){a.console&&a.console.error(b)};
6b.fn.masonry=function(a){if(typeof a=="string"){var c=Array.prototype.slice.call(arguments,1);this.each(function(){var d=b.data(this,"masonry");if(!d)f("cannot call methods on masonry prior to initialization; attempted to call method '"+a+"'");else{if(!b.isFunction(d[a])||a.charAt(0)==="_"){f("no such method '"+a+"' for masonry instance");return}d[a].apply(d,c)}})}else this.each(function(){var c=b.data(this,"masonry");c?(c.option(a||{}),c._init()):b.data(this,"masonry",new b.Mason(a,this))});return this}})(window,jQuery);
7
8/*!
9 * jQuery Fancy Letter Plugin v1.1
10 *
11 * Date: Sun Feb 06 20:51:59 2011 EST
12 * Requires: jQuery v1.2.6+
13 *
14 * Copyright 2011, Karl Swedberg
15 * Dual licensed under the MIT and GPL licenses (just like jQuery):
16 * http://www.opensource.org/licenses/mit-license.php
17 * http://www.gnu.org/licenses/gpl.html
18 *
19 * Contributor: Matt Wiebe (::first-letter spec semi-conformance)
20 *
21 *
22*/
23(function(g){g.fn.fancyletter=function(m){function k(a,d,b){return['<span class="',b.punctuationClass," ",b.ltrClassPrefix+b["punctuation"+a][d],'">',d,"</span>"].join("")}function l(a,d){var b=a.firstChild,e="",f={};if(!a)return f;for(;a.childNodes.length;)a=a.firstChild;e=a.nodeValue&&a.nodeValue.replace(/^\s\s*/,"")||"";if(e===""&&b&&b.nextSibling)return l(b.nextSibling,d);else{b=e;for(var i=f="",c=0,h=b.charAt(c),j={};h in d.punctuationLeft;){c++;f+=k("Left",h,d);h=b.charAt(c)}j.pl=f;j.firstChar=
24h;c++;for(h=b.charAt(c);h in d.punctuationRight;){c++;i+=k("Right",h,d);h=b.charAt(c)}j.pr=i;j.slicePoint=c;f=j;f.node=a;f.val=e;return f}}this.each(function(){var a,d,b,e,f=this;a=g(this);var i=g.extend({},g.fn.fancyletter.defaults,m||{},g.metadata?a.metadata():g.meta?a.data():{}),c=RegExp(i.characters);e=l(f,i);if(e.firstChar){a=e.val;f=e.node;d=e.firstChar;b=d.toLowerCase();if(c.test(d)){c=g("<span></span>");f.nodeValue=a.slice(e.slicePoint);c.html(e.pl+d+e.pr);c.addClass(i.commonClass+" "+i.ltrClassPrefix+
25b);c.prependTo(this)}}});return this};g.fn.fancyletter.defaults={commonClass:"fancy-letter",ltrClassPrefix:"ltr-",characters:"[a-zA-Z0-9]",groupPunctuation:true,punctuationClass:"punct",punctuationLeft:{'"':"dquo","'":"squo","\u201c":"ldquo","\u2018":"lsquo","\u00ab":"laquo","\u2039":"lsaquo","(":"lparen"},punctuationRight:{'"':"dquo","'":"squo","\u201d":"rdquo","\u2019":"rsquo","\u00bb":"raquo","\u203a":"rsaquo",")":"rparen"}}})(jQuery);
26
27/*!
28 * http://tinynav.viljamis.com v1.03 by @viljamis
29 * Licensed under the MIT license.
30 */
31(function ($, window, i) {
32	$.fn.tinyNav = function (options) {
33
34		// Default settings
35		var settings = $.extend({
36			'active' : 'selected', // String: Set the "active" class
37			'header' : false // Boolean: Show header instead of the active item
38		}, options);
39
40		return this.each(function () {
41
42			// Used for namespacing
43			i++;
44
45			var $nav = $(this),
46			// Namespacing
47				namespace = 'tinynav',
48				namespace_i = namespace + i,
49				l_namespace_i = '.l_' + namespace_i,
50				$select = $('<select/>').addClass(namespace + ' ' + namespace_i);
51
52			if ($nav.is('ul,ol')) {
53
54				if (settings.header) {
55					$select.append(
56						$('<option/>').text('Navigation')
57					);
58				}
59
60				// Build options
61				var options = '';
62
63				$nav
64					.addClass('l_' + namespace_i)
65					.find('a')
66					.each(function () {
67						options += '<option value="' + $(this).attr('href') + '">';
68						for (j = 0; j < $(this).parents('ul, ol').length - 1; j++) {
69							options += '&mdash; ';
70						}
71						options +=	$(this).text() + '</option>';
72					});
73
74				// Append options into a select
75				$select.append(options);
76
77				var selectors = settings.active.split(',');
78				var index_selectors = new Array();
79				for (var i=0; i<selectors.length; i++) {
80					index_selectors[i] = l_namespace_i + ' li.' + selectors[i];
81				}
82				index_selectors = index_selectors.join(',');
83				// Select the active item
84				if (!settings.header) {
85					$select
86						.find(':eq(' + $(l_namespace_i + ' li')
87						.index($(index_selectors)) + ')')
88						.attr('selected', true);
89				}
90
91				// Change window location
92				$select.change(function () {
93					window.location.href = $(this).val();
94				});
95
96				// Inject select
97				$(l_namespace_i).after($select);
98
99			}
100
101		});
102
103	};
104})(jQuery, this, 0);
105
106/*
107 * Based on the public domain "Responsive Cycle SlideShow" by M. Mikkel Rummelhoff (http://mmikkel.no)
108 * Modifications by Sayontan Sinha
109 */
110(function(window){
111	ResponsiveSlideShow.prototype.id = '';
112	ResponsiveSlideShow.prototype.$container = null;
113	ResponsiveSlideShow.prototype.$slides = null;
114	ResponsiveSlideShow.prototype.orgWidth = -1;
115	ResponsiveSlideShow.prototype.orgHeight = -1;
116	ResponsiveSlideShow.prototype.activeSlideIndex = 0;
117	ResponsiveSlideShow.prototype.options = {
118		fx:'fade',
119		speed:'fast',
120		slideResize:0
121	};
122
123	function ResponsiveSlideShow($container, $slides, $options) {
124		this.$container = $container;
125		this.$slides = this.$container.children($slides + ':first');
126		this.options = $options;
127		this.init();
128	}
129
130	ResponsiveSlideShow.prototype.init = function()	{
131		this.id = this.$container.attr('id');
132		// Check if there's a nav or pager element present
133		this.options.startingSlide = this.activeSlideIndex;
134		this.options.width = this.$container.width();
135		this.options.before = onSlideChange;
136		// Init slideshow
137		this.$slides.show();
138		this.$slides.cycle(this.options);
139		// Get original dimensions
140		if(this.orgWidth <= 0){
141			this.orgWidth = this.$slides.width();
142			this.orgHeight = this.$slides.height();
143		}
144	}
145
146	// Call when width changes
147	ResponsiveSlideShow.prototype.update = function() {
148		if(this.$slides.width() !== this.$container.width()){ // Container width changed. Rebuild slideshow
149			// Get the resize ratio
150			var ratio = (Math.floor((this.$container.width() / this.orgWidth)*100))*.01;
151			this.$slides.height(Math.floor(this.orgHeight * ratio));
152			this.activeSlideIndex = this.$slides.find('.active').index();
153			this.$slides.hide().cycle('destroy');
154			this.init();
155		}
156	}
157
158	function onSlideChange(currSlide,nextSlide) {
159		jQuery(this).parent().find('.active').removeClass('active');
160		jQuery(this).addClass('active');
161	}
162
163	window.ResponsiveSlideShow = ResponsiveSlideShow;
164
165}(window)); // End ResponsiveSlideShow
166
167/**
168 * suffusion.js - Contains all custom JavaScript functions required by Suffusion
169 */
170
171$j = jQuery.noConflict();
172
173$j.fn.extend({
174	highlight: function(search, insensitive, hls_class){
175		var regex = new RegExp("(<[^>]*>)|(\\b"+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +")", insensitive ? "ig" : "g");
176		return this.html(this.html().replace(regex, function(a, b, c){
177			return (a.charAt(0) == "<") ? a : "<span class=\""+ hls_class +"\">" + c + "</span>";
178		}));
179	}
180});
181
182$j.fn.removeHighlight = function() {
183	return this.find("span.search-highlight").each(function() {
184		with (this.parentNode) {
185			replaceChild(this.firstChild, this);
186			normalize();
187		}
188	}).end();
189};
190
191function sufHtmlEncode(value){
192	return $j('<div/>').text(value).html();
193}
194
195function sufHtmlDecode(value){
196	return $j('<div/>').html(value).text();
197}
198
199$j(document).ready(function() {
200    /* Magazine JS, for the headline section */
201	$j('.suf-mag-headlines div.suf-mag-headline-photo').hide();
202	$j('div.suf-mag-headline-photo-first').show();
203	$j('div.suf-mag-headline-block ul.mag-headlines li.suf-mag-headline-first a').addClass('tab-current');
204
205	$j('div.suf-mag-headline-block ul.mag-headlines li a').hover(function(){
206		var thisClass = this.className.substring(17, this.className.indexOf(" "));
207		$j('.suf-mag-headlines div.suf-mag-headline-photo').hide();
208		$j('div.suf-mag-headline-block ul.mag-headlines li a').removeClass('tab-current');
209        $j('div.suf-mag-headline-photo-' + thisClass).show();
210		$j(this).addClass('tab-current');
211	}   );
212    /* End Magazine JS */
213
214    /* Tabbed Widgets */
215    $j('.tab-box div.sidebar-tab-content').hide();
216    $j('div.sbtab-content-first').show();
217    $j('.tab-box ul.sidebar-tabs li.sbtab-first a').addClass('tab-current');
218
219    $j('.tab-box ul.sidebar-tabs li a').click(function(){
220        var thisClass = this.className.substring(6, this.className.indexOf(" "));
221        $j('.tab-box div.sidebar-tab-content').hide();
222        $j('.tab-box div.sbtab-content-' + thisClass).show();
223        $j('.tab-box ul.sidebar-tabs li a').removeClass('tab-current');
224        $j(this).addClass('tab-current');
225    });
226    /* End Tabbed Widgets */
227
228    /* JQuery-based fix for widgets that do not print "after_title" */
229    $j('.dbx-handle').each(function() {
230        $j(this).prependTo(this.parentNode.parentNode);
231    });
232    /* End JQuery-based fix */
233
234	/* JQuery for tabbed sidebars */
235	$j('.sidebar-tab .sidebar-tab-content').each(function() {
236		var parentId = this.parentNode.id;
237		var parentClass = this.parentNode.className;
238		parentClass = parentClass.substring(12);
239		$j(this).addClass('sbtab-content-' + parentId);
240		$j(this).addClass(parentClass);
241	    $j(this).appendTo(this.parentNode.parentNode.parentNode);
242	});
243
244	$j('.tabbed-sidebar ul.sidebar-tabs a').each(function() {
245		var parentId = this.parentNode.id;
246		$j(this).addClass(parentId);
247	});
248
249	$j('#wsidebar-top.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
250	$j('#wsidebar-top.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
251	$j('#sidebar.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
252	$j('#sidebar.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
253	$j('#sidebar-b.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
254	$j('#sidebar-b.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
255	$j('#sidebar-2.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
256	$j('#sidebar-2.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
257	$j('#sidebar-2-b.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
258	$j('#sidebar-2-b.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
259	$j('#wsidebar-bottom.tabbed-sidebar ul.sidebar-tabs li:first').addClass('sbtab-first');
260	$j('#wsidebar-bottom.tabbed-sidebar div.sidebar-tab-content:first').addClass('sbtab-content-first');
261
262	$j('div.tabbed-sidebar div.sidebar-tab-content').hide();
263	$j('div.sbtab-content-first').show();
264	$j('div.tabbed-sidebar ul.sidebar-tabs li.sbtab-first a').addClass('tab-current');
265
266	$j('div.tabbed-sidebar ul.sidebar-tabs li a').click(function(){
267		$j(this).removeClass('tab-current');
268	    var thisClass = this.className.substring(12, this.className.length);
269		var parentId = this.parentNode.parentNode.parentNode.id;
270	    $j('#' + parentId + '.tabbed-sidebar div.sidebar-tab-content').hide();
271	    $j('#' + parentId + '.tabbed-sidebar div.sbtab-content-' + thisClass).show();
272	    $j('#' + parentId + '.tabbed-sidebar ul.sidebar-tabs li a').removeClass('tab-current');
273	    $j(this).addClass('tab-current');
274	});
275	/* End tabbed sidebars */
276
277	// Kill empty widget areas
278	$j("#horizontal-outer-widgets-1, #horizontal-outer-widgets-2, #widgets-above-header").each(function () {
279		if ($j(this).children().length == 0) {
280			$j(this).remove();
281		}
282	});
283
284	// Remove empty sub-menus, generated for Mega menus
285	$j('ul.sf-menu .sub-menu').each(function() {
286		if ($j(this).children().length == 0) {
287			$j(this).remove();
288		}
289	});
290
291	$j('#left-header-widgets ul.menu, #right-header-widgets ul.menu').each(function() {
292		$j(this).addClass('sf-menu');
293	});
294
295	$j("ul.sf-menu > li").each(function() {
296		if (this.childNodes.length > 1) {
297			var drop_down = this.childNodes[1];
298			if ($j(drop_down).hasClass('mm-warea') && $j(drop_down).find('.mm-widget').length != 0) {
299				$j(this).removeClass('dd-tab').addClass('mm-tab');
300				var a_tag_h = this.childNodes[0];
301				var a_tag = $j(a_tag_h);
302				a_tag.attr('href', '#');
303				a_tag.attr('onclick', 'return false;');
304				a_tag.prepend("<!--[if !IE]>--><span class='down-ptr'>&nbsp;</span><!--<![endif]-->");
305				a_tag.append("<!--[if lt IE 7]>&nbsp;&nbsp;&darr;<![endif]--> <!--[if (!IE)|(gte IE 7)]><span class='down-ptr'>&nbsp;</span><![endif]-->");
306				a_tag.addClass('with-arrow');
307			}
308			else if ($j(drop_down).find('.mm-widget').length == 0 && $j(this).hasClass('mm-tab')) {
309				$j(this).remove();
310			}
311			else if (!$j(this).hasClass('mm-tab')) {
312				$j(this).addClass('dd-tab');
313			}
314		}
315		else {
316			$j(this).removeClass('dd-tab').addClass('regular-tab');
317		}
318	});
319
320	$j("ul.sf-menu .dd-tab > ul").each(function() {
321		var a_tag_h = this.parentNode.childNodes[0];
322		var a_tag = $j(a_tag_h);
323		a_tag.prepend("<!--[if !IE]>--><span class='down-ptr'>&nbsp;</span><!--<![endif]-->");
324		a_tag.append("<!--[if lt IE 7]>&nbsp;&nbsp;&darr;<![endif]--> <!--[if (!IE)|(gte IE 7)]><span class='down-ptr'>&nbsp;</span><![endif]-->");
325		a_tag.addClass('with-arrow');
326	});
327
328	$j("ul.sf-menu .dd-tab ul ul").each(function() {
329		var a_tag_h = this.parentNode.childNodes[0];
330		var a_tag = $j(a_tag_h);
331		a_tag.prepend("<!--[if !IE]>--><span class='float-ptr'>&nbsp;</span><!--<![endif]-->");
332		a_tag.append("<!--[if lt IE 7]>&nbsp;&nbsp;&rarr;<![endif]--> <!--[if (!IE)|(gte IE 7)]><span class='float-ptr'>&nbsp;</span><![endif]-->");
333		a_tag.addClass('drop');
334	});
335
336	$j("#nav ul.sf-menu .dd-tab, #nav-top ul.sf-menu .dd-tab").each(function() {
337		$j(this).children('ul:first').hide();
338		$j(this).find('ul:first').css({visibility: "hidden"});
339	});
340
341	$j("ul.sf-menu .dd-tab li.current_page_item > a, ul.sf-menu .dd-tab li.current-cat > a, ul.sf-menu .dd-tab li.current-menu-item > a, " +
342			"ul.sf-menu li.current_page_item.dd-tab > a, ul.sf-menu li.current-cat.dd-tab > a, ul.sf-menu li.current-menu-item.dd-tab > a, " +
343			"ul.sf-menu li.current_page_item.regular-tab > a, ul.sf-menu li.current-cat.regular-tab > a, ul.sf-menu li.current-menu-item.regular-tab > a").each(function() {
344		$j(this).addClass('current');
345	});
346
347	$j("ul.sf-menu .mm-tab li.current_page_item > a, ul.sf-menu .mm-tab li.current-cat > a, ul.sf-menu .mm-tab li.current-menu-item > a, " +
348			"ul.sf-menu li.current_page_item.mm-tab > a, ul.sf-menu li.current-cat.mm-tab > a, ul.sf-menu li.current-menu-item.mm-tab > a").each(function() {
349		$j(this).addClass('mm-current');
350	});
351
352	$j("#nav ul.sf-menu .dd-tab, #nav ul.sf-menu .dd-tab li").hover(
353		function() {
354			if (Suffusion_JS.suf_nav_effect == 'fade') {
355				$j(this).children('ul:first').fadeIn(Suffusion_JS.suf_nav_delay).css({visibility: "visible"});
356			}
357			else {
358				$j(this).children('ul:first').show(Suffusion_JS.suf_nav_delay).css({visibility: "visible"});
359			}
360		},
361		function() {
362			$j(this).children('ul:first').hide();
363			$j(this).find('ul:first').css({visibility: "hidden"});
364		}
365	);
366
367	$j("#nav-top ul.sf-menu .dd-tab, #nav-top ul.sf-menu .dd-tab li").hover(
368		function() {
369			if (Suffusion_JS.suf_navt_effect == 'fade') {
370				$j(this).find('ul:first').fadeIn(Suffusion_JS.suf_navt_delay).css({visibility: "visible"});
371			}
372			else {
373				$j(this).find('ul:first').show(Suffusion_JS.suf_navt_delay).css({visibility: "visible"});
374			}
375		},
376		function() {
377			$j(this).children('ul:first').hide();
378			$j(this).find('ul:first').css({visibility: "hidden"});
379		}
380	);
381
382	// Expand Panel
383	$j("#top-bar-right-spanel-tab .open").click(function(){
384		$j("#top-bar-right-spanel").slideDown("medium");
385		$j(this).css({ display: 'none' });
386		$j("#top-bar-right-spanel-tab .close").css({ display: 'block' });
387		return false;
388	});
389	// Collapse Panel
390	$j("#top-bar-right-spanel-tab .close").click(function(){
391		$j("#top-bar-right-spanel").slideUp("medium");
392		$j(this).css({ display: 'none' });
393		$j("#top-bar-right-spanel-tab .open").css({ display: 'block' });
394		return false;
395	});
396
397	$j('#search-info input[type="checkbox"].search-hl').change(function(event) {
398		var search = $j('#search-term').val();
399		var hls_class = 'search-highlight';
400		if ($j(this).attr('checked')) {
401			// Highlight search results
402			$j('#content .entry').each(function() {
403				var quotes = search.match(/"([^"]+)"/g);
404				var len = 0;
405				var matches = new Array();
406				if (quotes != null) {
407					len = quotes.length;
408					for (i=0; i<len; i++) {
409						quotes[i] = quotes[i].replace(/"/g, '');
410						matches[matches.length] = quotes[i];
411						search = search.replace(quotes[i], ' ');
412					}
413				}
414
415				var no_quotes = search.match(/\b[\S]+\b/g);
416				if (no_quotes != null) {
417					len = no_quotes.length;
418					for (i=0; i<len; i++) {
419						matches[matches.length] = no_quotes[i];
420					}
421				}
422
423				len = matches.length;
424				for (i=0; i<len; i++) {
425					var search_string = matches[i];
426					$j(this).highlight(search_string);
427					$j(this).highlight(search_string, true, hls_class);
428				}
429			});
430		}
431		else {
432			//Un-highlight search results
433			$j('#content .entry').each(function() {
434				$j(this).removeHighlight();
435			});
436		}
437	});
438
439	if (typeof Suffusion_JS.suf_jq_masonry_enabled != 'undefined' && Suffusion_JS.suf_jq_masonry_enabled == 'enabled') {
440		//$j("#top-bar-right-spanel").masonry();
441		//$j("#widgets-above-header").masonry();
442		$j("#horizontal-outer-widgets-1").masonry();
443		$j("#horizontal-outer-widgets-2").masonry();
444		$j("#ad-hoc-1").masonry();
445		$j("#ad-hoc-2").masonry();
446		$j("#ad-hoc-3").masonry();
447		$j("#ad-hoc-4").masonry();
448		$j("#ad-hoc-5").masonry();
449	}
450
451	if (Suffusion_JS.suf_fix_aspect_ratio == 'preserve') {
452		// If the HTML height attribute is present for images, the max-width setting really hammers the image proportions.
453		$j(".entry img").removeAttr('height');
454	}
455
456	// Fixes for NGG on IE8. This should ideally be on NGG's plugin itself, but given their support or lack thereof :-( ...
457	$j(".ngg-gallery-thumbnail img").removeAttr('height');
458	$j(".ngg-gallery-thumbnail img").removeAttr('width');
459
460	$j(".widget_calendar tbody td a").each(function() {
461		var parent = this.parentNode;
462		//var a_tag_h = this.parentNode.childNodes[0];
463		var td_tag = $j(parent);
464		td_tag.addClass('with-posts');
465	});
466
467	$j('a.suf-tile-icon').click(function() {
468		var class_name = this.className;
469		var thisId = this.id;
470		var lastSep = thisId.lastIndexOf('-');
471		var elementType = thisId.substr(0, lastSep);
472		var elementId = thisId.substr(lastSep);
473		var textElementId = elementType + '-text' + elementId;
474		$j('#' +  textElementId).toggle();
475		if (class_name.indexOf('clicked') > -1) {
476			$j(this).removeClass('clicked');
477		}
478		else {
479			$j(this).addClass('clicked');
480		}
481		var parents = $j(this).parents();
482		for (var i=0; i<parents.length; i++) {
483			var parent = parents[i];
484			if ($j(parent).hasClass('suf-tiles') || $j(parent).hasClass('suf-mag-excerpts')) {
485				$j(parents[i-1]).css({
486					'min-height': 0
487				});
488				suffusion_make_tiles_equal($j(parent).children('.suf-tile, .suf-mag-excerpt'));
489				break;
490			}
491		}
492		return false;
493	});
494
495	// JQuery Cycle stops if there is only one image in it. The following snippet fixes the issue.
496	$j('#sliderContent, .sliderContent').each(function() {
497		if ($j(this).children().length == 1) {
498			var single = this.firstChild;
499			$j(single).show();
500		}
501	});
502
503	$j('.mosaic-page-nav-right a, .mosaic-page-nav-left a').each(function() {
504		var parentContainer = $j(this).parent().parent();
505		var height = 0.45 * parentContainer.height();
506		$j(this).css({top: height + 'px'});
507	});
508
509	var staticSlideShow;
510	$j('#sliderContent').each(function() {
511		staticSlideShow = new ResponsiveSlideShow($j('#slider'), '#sliderContent', {
512			fx: Suffusion_JS.suf_featured_fx,
513			timeout: Suffusion_JS.suf_featured_interval,
514			speed: Suffusion_JS.suf_featured_transition_speed,
515			pause: 1,
516			sync: Suffusion_JS.suf_featured_sync,
517			pager: '#sliderPager',
518			prev: 'a.sliderPrev',
519			next: 'a.sliderNext',
520			slideResize: 0,
521			pagerAnchorBuilder: suffusion_anchor_builder
522		});
523	});
524
525	$j('a.sliderPause').click(
526		function() {
527			if ($j(this).text() == Suffusion_JS.suf_featured_pause) {
528				$j('#sliderContent').cycle('pause');
529				$j('a.sliderPause').addClass('activeSlide');
530				$j(this).text(Suffusion_JS.suf_featured_resume);
531			}
532			else {
533				$j('#sliderContent').cycle('resume');
534				$j('a.sliderPause').removeClass('activeSlide');
535				$j(this).text(Suffusion_JS.suf_featured_pause);
536			}
537			return false;
538		}
539	);
540
541	$j('.controller-icons #sliderControl a, .controller-icons .sliderControl a').hover(
542		function() {
543			var parent = $j(this).parent();
544			parent.children().addClass('slide-hovered');
545			$j(this).addClass('control-hovered');
546		},
547		function() {
548			var parent = $j(this).parent();
549			parent.children().addClass('slide-hovered');
550			$j(this).removeClass('control-hovered');
551		}
552	);
553
554	$j('#slider, .slider').hover(
555		function() {
556			var parent = $j(this).parent();
557			if (parent.hasClass('controller-icons')) {
558				parent.find('.sliderPrev, .sliderNext').addClass('slide-hovered');
559			}
560		},
561		function() {
562			var parent = $j(this).parent();
563			if (parent.hasClass('controller-icons')) {
564				parent.find('.sliderPrev, .sliderNext').removeClass('slide-hovered');
565			}
566		}
567	);
568
569	$j('.collapse .searchfield').focus(function() {
570		$j(this).addClass('search-focus');
571	});
572	$j('.collapse .searchfield').blur(function() {
573		$j(this).removeClass('search-focus');
574	});
575
576	$j('a.suf-mosaic-thumb').each(function() {
577		$j(this).data('title', $j(this).attr('title'));
578		if ($j.fancybox) {
579			$j(this).fancybox({
580				transitionIn	:	'elastic',
581				transitionOut	:	'elastic',
582				speedIn		:	600,
583				speedOut		:	200,
584				overlayShow	:	true,
585				overlayColor:	'#000',
586				overlayOpacity: 0.8
587			});
588		}
589		else if ($j.colorbox) {
590			$j(this).colorbox({
591				opacity: 0.8,
592				maxWidth: '95%',
593				maxHeight: '95%'
594			});
595		}
596	});
597
598	$j('.mosaic-overlay').hover(function() {
599		$j(this).stop().animate({
600			opacity: 0.65
601		}, "medium");
602	}, function() {
603		$j(this).stop().animate({
604			opacity: 0
605		}, "medium");
606	});
607
608	$j('.entry > p:first-child').each(function() {
609		$j(this).addClass('first-para');
610	});
611
612	if (Suffusion_JS.suf_show_drop_caps != '') {
613		$j(Suffusion_JS.suf_show_drop_caps).fancyletter();
614	}
615
616	$j(".exif-button .open").on('click', function(){
617		$j(".exif-panel").slideDown("medium");
618		$j(this).removeClass('open').addClass('close');
619		return false;
620	});
621	// Collapse Panel
622	$j(".exif-button .close").on('click', function(){
623		$j(".exif-panel").slideUp("medium");
624		$j(this).removeClass('close').addClass('open');
625		return false;
626	});
627
628	$j('.mm-warea + .sub-menu').each(function() {
629		$j(this).remove();
630	});
631
632	$j('.mm-warea').each(function() {
633		if ($j(this).find('.mm-widget').length == 0) {
634			$j(this).remove();
635			return;
636		}
637		var parents = $j(this).parents();
638		var parent_li = parents[0];
639		var col_control = parents[2];
640		var nav = parents[3];
641		var nav_left = $j(nav).offset().left;
642		var nav_right = nav_left + $j(nav).width();
643		var left_pos, current_offset, right_pos;
644		var padding = 10;
645		if (nav.id == 'nav') {
646			padding = 0;
647		}
648
649		if ($j(col_control).hasClass('center')) { // Centered menu. Mega-menu will be aligned centrally, but left & right positions will be adjusted to not cross the border.
650			left_pos = -($j(this).width() / 2); // Does the centering by moving it to the left by 50% of its width.
651			$j(this).css({ left: left_pos });
652			current_offset = $j(this).offset();
653			right_pos = current_offset.left + $j(this).width();
654
655			if (current_offset.left < nav_left) { // Mega-menu has gone too far left. We will shift it by the difference + padding
656				left_pos += nav_left - current_offset.left + padding;
657				$j(this).css({ left: left_pos });
658			}
659			else if (right_pos > nav_right) { // Mega-menu has gone too far right. We will shift it by the difference + padding
660				left_pos -= right_pos - nav_right + padding;
661				$j(this).css({ left: left_pos });
662			}
663		}
664		else if ($j(col_control).hasClass('left')) {
665			left_pos = 0;
666			$j(this).css({ left: left_pos });
667			current_offset = $j(this).offset();
668			right_pos = current_offset.left + $j(this).width();
669			if (right_pos > nav_right) {
670				left_pos -= right_pos - nav_right + padding;
671				$j(this).css({ left: left_pos });
672			}
673		}
674		else if ($j(col_control).hasClass('right')) {
675			right_pos = 0;
676			$j(this).css({ right: right_pos});
677			current_offset = $j(this).offset();
678			left_pos = current_offset.left;
679			if (left_pos < nav_left) {
680				right_pos -= nav_left - left_pos + padding;
681				$j(this).css({ right: right_pos});
682			}
683		}
684		$j(this).children('.mm-mason').masonry();
685	});
686
687	$j(".mm-warea .float-ptr").each(function() {
688		$j(this).remove();
689	});
690
691	$j(".mm-warea .drop").each(function() {
692		$j(this).removeClass('drop');
693	});
694
695	$j(".mm-warea select").focus(function() {
696		$j(this).parents('.mm-warea').addClass('keep-open');
697	});
698
699	$j(".mm-warea select").blur(function() {
700		$j(this).parents('.mm-warea').removeClass('keep-open');
701	});
702
703	$j(".mm-warea option").hover(
704		function() {
705			$j(this).parents('.mm-warea').addClass('keep-open');
706		},
707		function() {
708			$j(this).parents('.mm-warea').removeClass('keep-open');
709		}
710	);
711
712	$j('.mm-widget img, .cl-widget img').each(function() {
713		var widget = $j(this).parents('.mm-widget, .cl-widget');
714		if ($j(this).width() > $j(widget).innerWidth()) {
715			$j(this).css({width: '100%'});
716		}
717	});
718
719	$j(window).resize(function() {
720		if (typeof staticSlideShow != 'undefined') {
721			staticSlideShow.update();
722			$j('.controller-icons #sliderControl').css({
723				top: '-' + ($j('#sliderContent').height() / 2) + 'px'
724			});
725		}
726		suffusion_balance_heights('.suf-tiles, .suf-mag-excerpts, .suf-mag-categories, .cl-warea, .mm-row-equal');
727	});
728
729	$j(function() {
730		if (typeof staticSlideShow != 'undefined') {
731			//staticSlideShow.update();
732			$j('.controller-icons #sliderControl').css({
733				top: '-' + ($j('#sliderContent').height() / 2) + 'px'
734			});
735		}
736		suffusion_balance_heights('.suf-tiles, .suf-mag-excerpts, .suf-mag-categories, .cl-warea, .mm-row-equal');
737	});
738
739	$j(".sf-menu").tinyNav({
740		active: 'current_page_item,current-cat,current-menu-item', // Set the "active" class
741		header: false // Show header instead of the active item
742	});
743
744	function suffusion_anchor_builder(idx, slide) {
745		var anchor;
746		if (Suffusion_JS.suf_featured_pager_style == 'numbers') {
747			anchor = (idx + 1);
748		}
749		else {
750			anchor = '&nbsp;';
751		}
752		return '<a href="#">' + anchor + '</a>';
753	}
754
755	function suffusion_make_tiles_equal(tiles) {
756		var tallest = 0;
757		// Reset all tiles to 0 min-height
758		tiles.css({
759			'height': 'auto'
760		});
761		tiles.each(function() {
762			var currentHeight = $j(this).height();
763			if (currentHeight > tallest) {
764				tallest = currentHeight;
765			}
766		});
767		tiles.css({
768			'height': tallest
769		});
770	}
771
772	function suffusion_balance_heights(selector) {
773		$j(selector).each(function() {
774			var children = $j(this).find('.suf-tile, .suf-mag-excerpt, .suf-mag-category, .cl-widget, .mm-widget');
775			var wareaColumns = 0;
776			if ($j(this).hasClass('cl-warea') || $j(this).hasClass('mm-row-equal') || $j(this).hasClass('suf-tiles')) {
777				var baseline = 10 < children.length ? 10 : children.length;
778				for (var k = 0; k < baseline; k++) {
779					if (k != 0 && $j(children[k-1]).position().top != $j(children[k]).position().top) {
780						wareaColumns = k;
781						break;
782					}
783				}
784
785				if (wareaColumns == 0) {
786					for (var k=1; k<=10; k++) {
787						if ($j(this).hasClass('cl-warea-' + k) || $j(this).hasClass('mm-row-' + k) || $j(this).hasClass('suf-tiles-' + k)) {
788							wareaColumns = k;
789							break;
790						}
791					}
792				}
793			}
794
795			if ($j(this).hasClass('cl-warea-all-row') || $j(this).hasClass('cl-warea-all') || $j(this).hasClass('mm-row-equal') || $j(this).hasClass('suf-tiles')) {
796				for (var m = 0; m * wareaColumns < children.length; m = m + 1) {
797					var slice = children.slice(m * wareaColumns, (m + 1) * wareaColumns);
798					if ($j(this).hasClass('cl-warea-all-row') || $j(this).hasClass('mm-row-equal') || $j(this).hasClass('suf-tiles')) {
799						suffusion_make_tiles_equal(slice);
800					}
801				}
802				if ($j(this).hasClass('cl-warea-all')) {
803					suffusion_make_tiles_equal(children);
804				}
805			}
806			else if ($j(this).hasClass('cl-warea-masonry')) {
807				$j(this).masonry({
808					itemSelector: '.cl-widget',
809					columnWidth: function(containerWidth) {
810						if (wareaColumns == 0) {
811							return containerWidth;
812						}
813						return containerWidth/wareaColumns;
814					}
815				});
816			}
817			suffusion_make_tiles_equal($j(this).children('.suf-mag-excerpt, .suf-mag-category'));
818		});
819	}
820});

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.