PageSourceSearch

https://www.tottenhamtrust.com/templates/themza_j16_06/js/jquery.nivo.slider.js

js tottenhamtrust.com collected 2026-10-03 18:38:13 UTC 25,378 bytes, 700 lines download raw bytes

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

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.