jail 0.1.0 → 0.1.1

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