PageSourceSearch

https://haitiancooking.com/wp-content/themes/inspirythemes-food-re…/jquery.nivo.slider.js?ver=2.7.1

js haitiancooking.com collected 2026-10-02 05:07:46 UTC 25,773 bytes, 694 lines download raw bytes

1/*�
2 * jQuery Nivo Slider v2.7.1�
3 * http://nivo.dev7studios.com�
4 *�
5 * Copyright 2011, Gilbert Pellegrom�
6 * Free to use and abuse under the MIT license.�
7 * http://www.opensource.org/licenses/mit-license.php�
8 * �
9 * March 2010�
10 */�
11�
12(function($) {�
13�
14    var NivoSlider = function(element, options){�
15		//Defaults are below�
16		var settings = $.extend({}, $.fn.nivoSlider.defaults, options);�
17�
18        //Useful variables. Play carefully.�
19        var vars = {�
20            currentSlide: 0,�
21            currentImage: '',�
22            totalSlides: 0,�
23            running: false,�
24            paused: false,�
25            stop: false�
26        };�
27    �
28        //Get this slider�
29        var slider = $(element);�
30        slider.data('nivo:vars', vars);�
31        slider.css('position','relative');�
32        slider.addClass('nivoSlider');�
33        �
34        //Find our slider children�
35        var kids = slider.children();�
36        kids.each(function() {�
37            var child = $(this);�
38            var link = '';�
39            if(!child.is('img')){�
40                if(child.is('a')){�
41                    child.addClass('nivo-imageLink');�
42                    link = child;�
43                }�
44                child = child.find('img:first');�
45            }�
46            //Get img width & height�
47            var childWidth = child.width();�
48            if(childWidth == 0) childWidth = child.attr('width');�
49            var childHeight = child.height();�
50            if(childHeight == 0) childHeight = child.attr('height');�
51            //Resize the slider�
52            if(childWidth > slider.width()){�
53                slider.width(childWidth);�
54            }�
55            if(childHeight > slider.height()){�
56                slider.height(childHeight);�
57            }�
58            if(link != ''){�
59                link.css('display','none');�
60            }�
61            child.css('display','none');�
62            vars.totalSlides++;�
63        });�
64        �
65        //If randomStart�
66        if(settings.randomStart){�
67        	settings.startSlide = Math.floor(Math.random() * vars.totalSlides);�
68        }�
69        �
70        //Set startSlide�
71        if(settings.startSlide > 0){�
72            if(settings.startSlide >= vars.totalSlides) settings.startSlide = vars.totalSlides - 1;�
73            vars.currentSlide = settings.startSlide;�
74        }�
75        �
76        //Get initial image�
77        if($(kids[vars.currentSlide]).is('img')){�
78            vars.currentImage = $(kids[vars.currentSlide]);�
79        } else {�
80            vars.currentImage = $(kids[vars.currentSlide]).find('img:first');�
81        }�
82        �
83        //Show initial link�
84        if($(kids[vars.currentSlide]).is('a')){�
85            $(kids[vars.currentSlide]).css('display','block');�
86        }�
87        �
88        //Set first background�
89        slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');�
90�
91        //Create caption�
92        slider.append(�
93            $('<div class="nivo-caption"><p></p></div>').css({ display:'none', opacity:settings.captionOpacity })�
94        );		�
95        �
96        // Cross browser default caption opacity�
97        $('.nivo-caption', slider).css('opacity', 0);�
98		�
99		// Process caption function�
100		var processCaption = function(settings){�
101			var nivoCaption = $('.nivo-caption', slider);�
102			if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){�
103				var title = vars.currentImage.attr('title');�
104				if(title.substr(0,1) == '#') title = $(title).html();	�
105�
106				if(nivoCaption.css('opacity') != 0){�
107					nivoCaption.find('p').stop().fadeTo(settings.animSpeed, 0, function(){�
108						$(this).html(title);�
109						$(this).stop().fadeTo(settings.animSpeed, 1);�
110					});�
111				} else {�
112					nivoCaption.find('p').html(title);�
113				}					�
114				nivoCaption.stop().fadeTo(settings.animSpeed, settings.captionOpacity);�
115			} else {�
116				nivoCaption.stop().fadeTo(settings.animSpeed, 0);�
117			}�
118		}�
119		�
120        //Process initial  caption�
121        processCaption(settings);�
122        �
123        //In the words of Super Mario "let's a go!"�
124        var timer = 0;�
125        if(!settings.manualAdvance && kids.length > 1){�
126            timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);�
127        }�
128�
129        //Add Direction nav�
130        if(settings.directionNav){�
131            slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');�
132            �
133            //Hide Direction nav�
134            if(settings.directionNavHide){�
135                $('.nivo-directionNav', slider).hide();�
136                slider.hover(function(){�
137                    $('.nivo-directionNav', slider).show();�
138                }, function(){�
139                    $('.nivo-directionNav', slider).hide();�
140                });�
141            }�
142            �
143            $('a.nivo-prevNav', slider).live('click', function(){�
144                if(vars.running) return false;�
145                clearInterval(timer);�
146                timer = '';�
147                vars.currentSlide -= 2;�
148                nivoRun(slider, kids, settings, 'prev');�
149            });�
150            �
151            $('a.nivo-nextNav', slider).live('click', function(){�
152                if(vars.running) return false;�
153                clearInterval(timer);�
154                timer = '';�
155                nivoRun(slider, kids, settings, 'next');�
156            });�
157        }�
158        �
159        //Add Control nav�
160        if(settings.controlNav){�
161            var nivoControl = $('<div class="nivo-controlNav"><span></span></div>');�
162            slider.append(nivoControl);�
163            for(var i = 0; i < kids.length; i++){�
164                if(settings.controlNavThumbs){�
165                    var child = kids.eq(i);�
166                    if(!child.is('img')){�
167                        child = child.find('img:first');�
168                    }�
169                    if (settings.controlNavThumbsFromRel) {�
170                        nivoControl.children('span').append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('rel') + '" alt="" /></a>');�
171                    } else {�
172                        nivoControl.children('span').append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('src').replace(settings.controlNavThumbsSearch, settings.controlNavThumbsReplace) +'" alt="" /></a>');�
173                    }�
174                } else {�
175                    nivoControl.children('span').append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');�
176                }�
177                �
178            }�
179            //Set initial active link�
180            $('.nivo-controlNav span a:eq('+ vars.currentSlide +')', slider).addClass('active');�
181            �
182            $('.nivo-controlNav span a', slider).live('click', function(){�
183                if(vars.running) return false;�
184                if($(this).hasClass('active')) return false;�
185                clearInterval(timer);�
186                timer = '';�
187                slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');�
188                vars.currentSlide = $(this).attr('rel') - 1;�
189                nivoRun(slider, kids, settings, 'control');�
190            });�
191        }�
192        �
193        //Keyboard Navigation�
194        if(settings.keyboardNav){�
195            $(window).keypress(function(event){�
196                //Left�
197                if(event.keyCode == '37'){�
198                    if(vars.running) return false;�
199                    clearInterval(timer);�
200                    timer = '';�
201                    vars.currentSlide-=2;�
202                    nivoRun(slider, kids, settings, 'prev');�
203                }�
204                //Right�
205                if(event.keyCode == '39'){�
206                    if(vars.running) return false;�
207                    clearInterval(timer);�
208                    timer = '';�
209                    nivoRun(slider, kids, settings, 'next');�
210                }�
211            });�
212        }�
213        �
214        //For pauseOnHover setting�
215        if(settings.pauseOnHover){�
216            slider.hover(function(){�
217                vars.paused = true;�
218                clearInterval(timer);�
219                timer = '';�
220            }, function(){�
221                vars.paused = false;�
222                //Restart the timer�
223                if(timer == '' && !settings.manualAdvance){�
224                    timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);�
225                }�
226            });�
227        }�
228        �
229        //Event when Animation finishes�
230        slider.bind('nivo:animFinished', function(){ �
231            vars.running = false; �
232            //Hide child links�
233            $(kids).each(function(){�
234                if($(this).is('a')){�
235                    $(this).css('display','none');�
236                }�
237            });�
238            //Show current link�
239            if($(kids[vars.currentSlide]).is('a')){�
240                $(kids[vars.currentSlide]).css('display','block');�
241            }�
242            //Restart the timer�
243            if(timer == '' && !vars.paused && !settings.manualAdvance){�
244                timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);�
245            }�
246            //Trigger the afterChange callback�
247            settings.afterChange.call(this);�
248        });�
249        �
250        // Add slices for slice animations�
251        var createSlices = function(slider, settings, vars){�
252            for(var i = 0; i < settings.slices; i++){�
253				var sliceWidth = Math.round(slider.width()/settings.slices);�
254				if(i == settings.slices-1){�
255					slider.append(�
256						$('<div class="nivo-slice"></div>').css({ �
257							left:(sliceWidth*i)+'px', width:(slider.width()-(sliceWidth*i))+'px',�
258							height:'0px', �
259							opacity:'0', �
260							background: 'url("'+ vars.currentImage.attr('src') +'") no-repeat -'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px 0%'�
261						})�
262					);�
263				} else {�
264					slider.append(�
265						$('<div class="nivo-slice"></div>').css({ �
266							left:(sliceWidth*i)+'px', width:sliceWidth+'px',�
267							height:'0px', �
268							opacity:'0', �
269							background: 'url("'+ vars.currentImage.attr('src') +'") no-repeat -'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px 0%'�
270						})�
271					);�
272				}�
273			}�
274        }�
275		�
276		// Add boxes for box animations�
277		var createBoxes = function(slider, settings, vars){�
278			var boxWidth = Math.round(slider.width()/settings.boxCols);�
279			var boxHeight = Math.round(slider.height()/settings.boxRows);�
280			�
281			for(var rows = 0; rows < settings.boxRows; rows++){�
282				for(var cols = 0; cols < settings.boxCols; cols++){�
283					if(cols == settings.boxCols-1){�
284						slider.append(�
285							$('<div class="nivo-box"></div>').css({ �
286								opacity:0,�
287								left:(boxWidth*cols)+'px', �
288								top:(boxHeight*rows)+'px',�
289								width:(slider.width()-(boxWidth*cols))+'px',�
290								height:boxHeight+'px',�
291								background: 'url("'+ vars.currentImage.attr('src') +'") no-repeat -'+ ((boxWidth + (cols * boxWidth)) - boxWidth) +'px -'+ ((boxHeight + (rows * boxHeight)) - boxHeight) +'px'�
292							})�
293						);�
294					} else {�
295						slider.append(�
296							$('<div class="nivo-box"></div>').css({ �
297								opacity:0,�
298								left:(boxWidth*cols)+'px', �
299								top:(boxHeight*rows)+'px',�
300								width:boxWidth+'px',�
301								height:boxHeight+'px',�
302								background: 'url("'+ vars.currentImage.attr('src') +'") no-repeat -'+ ((boxWidth + (cols * boxWidth)) - boxWidth) +'px -'+ ((boxHeight + (rows * boxHeight)) - boxHeight) +'px'�
303							})�
304						);�
305					}�
306				}�
307			}�
308		}�
309�
310        // Private run method�
311		var nivoRun = function(slider, kids, settings, nudge){�
312			//Get our vars�
313			var vars = slider.data('nivo:vars');�
314            �
315            //Trigger the lastSlide callback�
316            if(vars && (vars.currentSlide == vars.totalSlides - 1)){ �
317				settings.lastSlide.call(this);�
318			}�
319            �
320            // Stop�
321			if((!vars || vars.stop) && !nudge) return false;�
322			�
323			//Trigger the beforeChange callback�
324			settings.beforeChange.call(this);�
325					�
326			//Set current background before change�
327			if(!nudge){�
328				slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');�
329			} else {�
330				if(nudge == 'prev'){�
331					slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');�
332				}�
333				if(nudge == 'next'){�
334					slider.css('background','url("'+ vars.currentImage.attr('src') +'") no-repeat');�
335				}�
336			}�
337			vars.currentSlide++;�
338            //Trigger the slideshowEnd callback�
339			if(vars.currentSlide == vars.totalSlides){ �
340				vars.currentSlide = 0;�
341				settings.slideshowEnd.call(this);�
342			}�
343			if(vars.currentSlide < 0) vars.currentSlide = (vars.totalSlides - 1);�
344			//Set vars.currentImage�
345			if($(kids[vars.currentSlide]).is('img')){�
346				vars.currentImage = $(kids[vars.currentSlide]);�
347			} else {�
348				vars.currentImage = $(kids[vars.currentSlide]).find('img:first');�
349			}�
350			�
351			//Set active links�
352			if(settings.controlNav){�
353				$('.nivo-controlNav span a', slider).removeClass('active');�
354				$('.nivo-controlNav span a:eq('+ vars.currentSlide +')', slider).addClass('active');�
355			}�
356			�
357			//Process caption�
358			processCaption(settings);�
359			�
360			// Remove any slices from last transition�
361			$('.nivo-slice', slider).remove();�
362			�
363			// Remove any boxes from last transition�
364			$('.nivo-box', slider).remove();�
365			�
366			var currentEffect = settings.effect;�
367			//Generate random effect�
368			if(settings.effect == 'random'){�
369				var anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',�
370                'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');�
371				currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];�
372				if(currentEffect == undefined) currentEffect = 'fade';�
373			}�
374            �
375            //Run random effect from specified set (eg: effect:'fold,fade')�
376            if(settings.effect.indexOf(',') != -1){�
377                var anims = settings.effect.split(',');�
378                currentEffect = anims[Math.floor(Math.random()*(anims.length))];�
379				if(currentEffect == undefined) currentEffect = 'fade';�
380            }�
381            �
382            //Custom transition as defined by "data-transition" attribute�
383            if(vars.currentImage.attr('data-transition')){�
384            	currentEffect = vars.currentImage.attr('data-transition');�
385            }�
386		�
387			//Run effects�
388			vars.running = true;�
389			if(currentEffect == 'sliceDown' || currentEffect == 'sliceDownRight' || currentEffect == 'sliceDownLeft'){�
390				createSlices(slider, settings, vars);�
391				var timeBuff = 0;�
392				var i = 0;�
393				var slices = $('.nivo-slice', slider);�
394				if(currentEffect == 'sliceDownLeft') slices = $('.nivo-slice', slider)._reverse();�
395				�
396				slices.each(function(){�
397					var slice = $(this);�
398					slice.css({ 'top': '0px' });�
399					if(i == settings.slices-1){�
400						setTimeout(function(){�
401							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });�
402						}, (100 + timeBuff));�
403					} else {�
404						setTimeout(function(){�
405							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed);�
406						}, (100 + timeBuff));�
407					}�
408					timeBuff += 50;�
409					i++;�
410				});�
411			} �
412			else if(currentEffect == 'sliceUp' || currentEffect == 'sliceUpRight' || currentEffect == 'sliceUpLeft'){�
413				createSlices(slider, settings, vars);�
414				var timeBuff = 0;�
415				var i = 0;�
416				var slices = $('.nivo-slice', slider);�
417				if(currentEffect == 'sliceUpLeft') slices = $('.nivo-slice', slider)._reverse();�
418				�
419				slices.each(function(){�
420					var slice = $(this);�
421					slice.css({ 'bottom': '0px' });�
422					if(i == settings.slices-1){�
423						setTimeout(function(){�
424							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });�
425						}, (100 + timeBuff));�
426					} else {�
427						setTimeout(function(){�
428							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed);�
429						}, (100 + timeBuff));�
430					}�
431					timeBuff += 50;�
432					i++;�
433				});�
434			} �
435			else if(currentEffect == 'sliceUpDown' || currentEffect == 'sliceUpDownRight' || currentEffect == 'sliceUpDownLeft'){�
436				createSlices(slider, settings, vars);�
437				var timeBuff = 0;�
438				var i = 0;�
439				var v = 0;�
440				var slices = $('.nivo-slice', slider);�
441				if(currentEffect == 'sliceUpDownLeft') slices = $('.nivo-slice', slider)._reverse();�
442				�
443				slices.each(function(){�
444					var slice = $(this);�
445					if(i == 0){�
446						slice.css('top','0px');�
447						i++;�
448					} else {�
449						slice.css('bottom','0px');�
450						i = 0;�
451					}�
452					�
453					if(v == settings.slices-1){�
454						setTimeout(function(){�
455							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });�
456						}, (100 + timeBuff));�
457					} else {�
458						setTimeout(function(){�
459							slice.animate({ height:'100%', opacity:'1.0' }, settings.animSpeed);�
460						}, (100 + timeBuff));�
461					}�
462					timeBuff += 50;�
463					v++;�
464				});�
465			} �
466			else if(currentEffect == 'fold'){�
467				createSlices(slider, settings, vars);�
468				var timeBuff = 0;�
469				var i = 0;�
470				�
471				$('.nivo-slice', slider).each(function(){�
472					var slice = $(this);�
473					var origWidth = slice.width();�
474					slice.css({ top:'0px', height:'100%', width:'0px' });�
475					if(i == settings.slices-1){�
476						setTimeout(function(){�
477							slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });�
478						}, (100 + timeBuff));�
479					} else {�
480						setTimeout(function(){�
481							slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed);�
482						}, (100 + timeBuff));�
483					}�
484					timeBuff += 50;�
485					i++;�
486				});�
487			}  �
488			else if(currentEffect == 'fade'){�
489				createSlices(slider, settings, vars);�
490				�
491				var firstSlice = $('.nivo-slice:first', slider);�
492                firstSlice.css({�
493                    'height': '100%',�
494                    'width': slider.width() + 'px'�
495                });�
496    �
497				firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });�
498			}          �
499            else if(currentEffect == 'slideInRight'){�
500				createSlices(slider, settings, vars);�
501				�
502                var firstSlice = $('.nivo-slice:first', slider);�
503                firstSlice.css({�
504                    'height': '100%',�
505                    'width': '0px',�
506                    'opacity': '1'�
507                });�
508�
509                firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });�
510            }�
511            else if(currentEffect == 'slideInLeft'){�
512				createSlices(slider, settings, vars);�
513				�
514                var firstSlice = $('.nivo-slice:first', slider);�
515                firstSlice.css({�
516                    'height': '100%',�
517                    'width': '0px',�
518                    'opacity': '1',�
519                    'left': '',�
520                    'right': '0px'�
521                });�
522�
523                firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ �
524                    // Reset positioning�
525                    firstSlice.css({�
526                        'left': '0px',�
527                        'right': ''�
528                    });�
529                    slider.trigger('nivo:animFinished'); �
530                });�
531            }�
532			else if(currentEffect == 'boxRandom'){�
533				createBoxes(slider, settings, vars);�
534				�
535				var totalBoxes = settings.boxCols * settings.boxRows;�
536				var i = 0;�
537				var timeBuff = 0;�
538				�
539				var boxes = shuffle($('.nivo-box', slider));�
540				boxes.each(function(){�
541					var box = $(this);�
542					if(i == totalBoxes-1){�
543						setTimeout(function(){�
544							box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });�
545						}, (100 + timeBuff));�
546					} else {�
547						setTimeout(function(){�
548							box.animate({ opacity:'1' }, settings.animSpeed);�
549						}, (100 + timeBuff));�
550					}�
551					timeBuff += 20;�
552					i++;�
553				});�
554			}�
555			else if(currentEffect == 'boxRain' || currentEffect == 'boxRainReverse' || currentEffect == 'boxRainGrow' || currentEffect == 'boxRainGrowReverse'){�
556				createBoxes(slider, settings, vars);�
557				�
558				var totalBoxes = settings.boxCols * settings.boxRows;�
559				var i = 0;�
560				var timeBuff = 0;�
561				�
562				// Split boxes into 2D array�
563				var rowIndex = 0;�
564				var colIndex = 0;�
565				var box2Darr = new Array();�
566				box2Darr[rowIndex] = new Array();�
567				var boxes = $('.nivo-box', slider);�
568				if(currentEffect == 'boxRainReverse' || currentEffect == 'boxRainGrowReverse'){�
569					boxes = $('.nivo-box', slider)._reverse();�
570				}�
571				boxes.each(function(){�
572					box2Darr[rowIndex][colIndex] = $(this);�
573					colIndex++;�
574					if(colIndex == settings.boxCols){�
575						rowIndex++;�
576						colIndex = 0;�
577						box2Darr[rowIndex] = new Array();�
578					}�
579				});�
580				�
581				// Run animation�
582				for(var cols = 0; cols < (settings.boxCols * 2); cols++){�
583					var prevCol = cols;�
584					for(var rows = 0; rows < settings.boxRows; rows++){�
585						if(prevCol >= 0 && prevCol < settings.boxCols){�
586							/* Due to some weird JS bug with loop vars �
587							being used in setTimeout, this is wrapped�
588							with an anonymous function call */�
589							(function(row, col, time, i, totalBoxes) {�
590								var box = $(box2Darr[row][col]);�
591                                var w = box.width();�
592                                var h = box.height();�
593                                if(currentEffect == 'boxRainGrow' || currentEffect == 'boxRainGrowReverse'){�
594                                    box.width(0).height(0);�
595                                }�
596								if(i == totalBoxes-1){�
597									setTimeout(function(){�
598										box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });�
599									}, (100 + time));�
600								} else {�
601									setTimeout(function(){�
602										box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);�
603									}, (100 + time));�
604								}�
605							})(rows, prevCol, timeBuff, i, totalBoxes);�
606							i++;�
607						}�
608						prevCol--;�
609					}�
610					timeBuff += 100;�
611				}�
612			}�
613		}�
614		�
615		// Shuffle an array�
616		var shuffle = function(arr){�
617			for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);�
618			return arr;�
619		}�
620        �
621        // For debugging�
622        var trace = function(msg){�
623            if (this.console && typeof console.log != "undefined")�
624                console.log(msg);�
625        }�
626        �
627        // Start / Stop�
628        this.stop = function(){�
629            if(!$(element).data('nivo:vars').stop){�
630                $(element).data('nivo:vars').stop = true;�
631                trace('Stop Slider');�
632            }�
633        }�
634        �
635        this.start = function(){�
636            if($(element).data('nivo:vars').stop){�
637                $(element).data('nivo:vars').stop = false;�
638                trace('Start Slider');�
639            }�
640        }�
641        �
642        //Trigger the afterLoad callback�
643        settings.afterLoad.call(this);�
644		�
645		return this;�
646    };�
647        �
648    $.fn.nivoSlider = function(options) {�
649    �
650        return this.each(function(key, value){�
651            var element = $(this);�
652            // Return early if this element already has a plugin instance�
653            if (element.data('nivoslider')) return element.data('nivoslider');�
654            // Pass options to plugin constructor�
655            var nivoslider = new NivoSlider(this, options);�
656            // Store plugin object in this element's data�
657            element.data('nivoslider', nivoslider);�
658        });�
659�
660	};�
661	�
662	//Default settings�
663	$.fn.nivoSlider.defaults = {�
664		effect: 'random',�
665		slices: 15,�
666		boxCols: 8,�
667		boxRows: 4,�
668		animSpeed: 500,�
669		pauseTime: 3000,�
670		startSlide: 0,�
671		directionNav: true,�
672		directionNavHide: true,�
673		controlNav: true,�
674		controlNavThumbs: false,�
675        controlNavThumbsFromRel: false,�
676		controlNavThumbsSearch: '.jpg',�
677		controlNavThumbsReplace: '_thumb.jpg',�
678		keyboardNav: true,�
679		pauseOnHover: true,�
680		manualAdvance: false,�
681		captionOpacity: 0.8,�
682		prevText: 'Prev',�
683		nextText: 'Next',�
684		randomStart: false,�
685		beforeChange: function(){},�
686		afterChange: function(){},�
687		slideshowEnd: function(){},�
688        lastSlide: function(){},�
689        afterLoad: function(){}�
690	};�
691	�
692	$.fn._reverse = [].reverse;�
693	�
694})(jQuery);

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.