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