Advertisement
Guest User

Untitled

a guest
Apr 5th, 2012
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * jQuery Nivo Slider v2.6
  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.  */ (function ($) {
  11.     var NivoSlider = function (element, options) {
  12.             var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
  13.             var vars = {
  14.                 currentSlide: 0,
  15.                 currentImage: '',
  16.                 totalSlides: 0,
  17.                 randAnim: '',
  18.                 running: false,
  19.                 paused: false,
  20.                 stop: false
  21.             };
  22.             var slider = $(element);
  23.             slider.data('nivo:vars', vars);
  24.             slider.css('position', 'relative');
  25.             slider.addClass('nivoSlider');
  26.             var kids = slider.children();
  27.             kids.each(function () {
  28.                 var child = $(this);
  29.                 var link = '';
  30.                 if (!child.is('img')) {
  31.                     if (child.is('a')) {
  32.                         child.addClass('nivo-imageLink');
  33.                         link = child;
  34.                     }
  35.                     child = child.find('img:first');
  36.                 }
  37.                 var childWidth = child.width();
  38.                 if (childWidth == 0) childWidth = child.attr('width');
  39.                 var childHeight = child.height();
  40.                 if (childHeight == 0) childHeight = child.attr('height');
  41.                 if (childWidth > slider.width()) {
  42.                     slider.width(childWidth);
  43.                 }
  44.                 if (childHeight > slider.height()) {
  45.                     slider.height(childHeight);
  46.                 }
  47.                 if (link != '') {
  48.                     link.css('display', 'none');
  49.                 }
  50.                 child.css('display', 'none');
  51.                 vars.totalSlides++;
  52.             });
  53.             if (settings.startSlide > 0) {
  54.                 if (settings.startSlide >= vars.totalSlides) settings.startSlide = vars.totalSlides - 1;
  55.                 vars.currentSlide = settings.startSlide;
  56.             }
  57.             if ($(kids[vars.currentSlide]).is('img')) {
  58.                 vars.currentImage = $(kids[vars.currentSlide]);
  59.             } else {
  60.                 vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
  61.             }
  62.             if ($(kids[vars.currentSlide]).is('a')) {
  63.                 $(kids[vars.currentSlide]).css('display', 'block');
  64.             }
  65.             slider.css('background', 'url("' + vars.currentImage.attr('src') + '") no-repeat');
  66.             slider.append($('<div class="nivo-caption"><p></p></div>').css({
  67.                 display: 'none',
  68.                 opacity: settings.captionOpacity
  69.             }));
  70.             var processCaption = function (settings) {
  71.                     var nivoCaption = $('.nivo-caption', slider);
  72.                     if (vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined) {
  73.                         var title = vars.currentImage.attr('title');
  74.                         if (title.substr(0, 1) == '#') title = $(title).html();
  75.                         if (nivoCaption.css('display') == 'block') {
  76.                             nivoCaption.find('p').fadeOut(settings.animSpeed, function () {
  77.                                 $(this).html(title);
  78.                                 $(this).fadeIn(settings.animSpeed);
  79.                             });
  80.                         } else {
  81.                             nivoCaption.find('p').html(title);
  82.                         }
  83.                         nivoCaption.fadeIn(settings.animSpeed);
  84.                     } else {
  85.                         nivoCaption.fadeOut(settings.animSpeed);
  86.                     }
  87.                 }
  88.             processCaption(settings);
  89.             var timer = 0;
  90.             if (!settings.manualAdvance && kids.length > 1) {
  91.                 timer = setInterval(function () {
  92.                     nivoRun(slider, kids, settings, false);
  93.                 }, settings.pauseTime);
  94.             }
  95.             if (settings.directionNav) {
  96.                 slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">' + settings.prevText + '</a><a class="nivo-nextNav">' + settings.nextText + '</a></div>');
  97.                 if (settings.directionNavHide) {
  98.                     $('.nivo-directionNav', slider).hide();
  99.                     slider.hover(function () {
  100.                         $('.nivo-directionNav', slider).show();
  101.                     }, function () {
  102.                         $('.nivo-directionNav', slider).hide();
  103.                     });
  104.                 }
  105.                 $('a.nivo-prevNav', slider).live('click', function () {
  106.                     if (vars.running) return false;
  107.                     clearInterval(timer);
  108.                     timer = '';
  109.                     vars.currentSlide -= 2;
  110.                     nivoRun(slider, kids, settings, 'prev');
  111.                 });
  112.                 $('a.nivo-nextNav', slider).live('click', function () {
  113.                     if (vars.running) return false;
  114.                     clearInterval(timer);
  115.                     timer = '';
  116.                     nivoRun(slider, kids, settings, 'next');
  117.                 });
  118.             }
  119.             if (settings.controlNav) {
  120.                 var nivoControl = $('<div class="nivo-controlNav"></div>');
  121.                 slider.append(nivoControl);
  122.                 for (var i = 0; i < kids.length; i++) {
  123.                     if (settings.controlNavThumbs) {
  124.                         var child = kids.eq(i);
  125.                         if (!child.is('img')) {
  126.                             child = child.find('img:first');
  127.                         }
  128.                         if (settings.controlNavThumbsFromRel) {
  129.                             nivoControl.append('<a class="nivo-control" rel="' + i + '"><img src="' + child.attr('rel') + '" alt="" /></a>');
  130.                         } else {
  131.                             nivoControl.append('<a class="nivo-control" rel="' + i + '"><img src="' + child.attr('src').replace(settings.controlNavThumbsSearch, settings.controlNavThumbsReplace) + '" alt="" /></a>');
  132.                         }
  133.                     } else {
  134.                         nivoControl.append('<a class="nivo-control" rel="' + i + '">' + (i + 1) + '</a>');
  135.                     }
  136.                 }
  137.                 $('.nivo-controlNav a:eq(' + vars.currentSlide + ')', slider).addClass('active');
  138.                 $('.nivo-controlNav a', slider).live('click', function () {
  139.                     if (vars.running) return false;
  140.                     if ($(this).hasClass('active')) return false;
  141.                     clearInterval(timer);
  142.                     timer = '';
  143.                     slider.css('background', 'url("' + vars.currentImage.attr('src') + '") no-repeat');
  144.                     vars.currentSlide = $(this).attr('rel') - 1;
  145.                     nivoRun(slider, kids, settings, 'control');
  146.                 });
  147.             }
  148.             if (settings.keyboardNav) {
  149.                 $(window).keypress(function (event) {
  150.                     if (event.keyCode == '37') {
  151.                         if (vars.running) return false;
  152.                         clearInterval(timer);
  153.                         timer = '';
  154.                         vars.currentSlide -= 2;
  155.                         nivoRun(slider, kids, settings, 'prev');
  156.                     }
  157.                     if (event.keyCode == '39') {
  158.                         if (vars.running) return false;
  159.                         clearInterval(timer);
  160.                         timer = '';
  161.                         nivoRun(slider, kids, settings, 'next');
  162.                     }
  163.                 });
  164.             }
  165.             if (settings.pauseOnHover) {
  166.                 slider.hover(function () {
  167.                     vars.paused = true;
  168.                     clearInterval(timer);
  169.                     timer = '';
  170.                 }, function () {
  171.                     vars.paused = false;
  172.                     if (timer == '' && !settings.manualAdvance) {
  173.                         timer = setInterval(function () {
  174.                             nivoRun(slider, kids, settings, false);
  175.                         }, settings.pauseTime);
  176.                     }
  177.                 });
  178.             }
  179.             slider.bind('nivo:animFinished', function () {
  180.                 vars.running = false;
  181.                 $(kids).each(function () {
  182.                     if ($(this).is('a')) {
  183.                         $(this).css('display', 'none');
  184.                     }
  185.                 });
  186.                 if ($(kids[vars.currentSlide]).is('a')) {
  187.                     $(kids[vars.currentSlide]).css('display', 'block');
  188.                 }
  189.                 if (timer == '' && !vars.paused && !settings.manualAdvance) {
  190.                     timer = setInterval(function () {
  191.                         nivoRun(slider, kids, settings, false);
  192.                     }, settings.pauseTime);
  193.                 }
  194.                 settings.afterChange.call(this);
  195.             });
  196.             var createSlices = function (slider, settings, vars) {
  197.                     for (var i = 0; i < settings.slices; i++) {
  198.                         var sliceWidth = Math.round(slider.width() / settings.slices);
  199.                         if (i == settings.slices - 1) {
  200.                             slider.append($('<div class="nivo-slice"></div>').css({
  201.                                 left: (sliceWidth * i) + 'px',
  202.                                 width: (slider.width() - (sliceWidth * i)) + 'px',
  203.                                 height: '0px',
  204.                                 opacity: '0',
  205.                                 background: 'url("' + vars.currentImage.attr('src') + '") no-repeat -' + ((sliceWidth + (i * sliceWidth)) - sliceWidth) + 'px 0%'
  206.                             }));
  207.                         } else {
  208.                             slider.append($('<div class="nivo-slice"></div>').css({
  209.                                 left: (sliceWidth * i) + 'px',
  210.                                 width: sliceWidth + 'px',
  211.                                 height: '0px',
  212.                                 opacity: '0',
  213.                                 background: 'url("' + vars.currentImage.attr('src') + '") no-repeat -' + ((sliceWidth + (i * sliceWidth)) - sliceWidth) + 'px 0%'
  214.                             }));
  215.                         }
  216.                     }
  217.                 }
  218.             var createBoxes = function (slider, settings, vars) {
  219.                     var boxWidth = Math.round(slider.width() / settings.boxCols);
  220.                     var boxHeight = Math.round(slider.height() / settings.boxRows);
  221.                     for (var rows = 0; rows < settings.boxRows; rows++) {
  222.                         for (var cols = 0; cols < settings.boxCols; cols++) {
  223.                             if (cols == settings.boxCols - 1) {
  224.                                 slider.append($('<div class="nivo-box"></div>').css({
  225.                                     opacity: 0,
  226.                                     left: (boxWidth * cols) + 'px',
  227.                                     top: (boxHeight * rows) + 'px',
  228.                                     width: (slider.width() - (boxWidth * cols)) + 'px',
  229.                                     height: boxHeight + 'px',
  230.                                     background: 'url("' + vars.currentImage.attr('src') + '") no-repeat -' + ((boxWidth + (cols * boxWidth)) - boxWidth) + 'px -' + ((boxHeight + (rows * boxHeight)) - boxHeight) + 'px'
  231.                                 }));
  232.                             } else {
  233.                                 slider.append($('<div class="nivo-box"></div>').css({
  234.                                     opacity: 0,
  235.                                     left: (boxWidth * cols) + 'px',
  236.                                     top: (boxHeight * rows) + 'px',
  237.                                     width: boxWidth + 'px',
  238.                                     height: boxHeight + 'px',
  239.                                     background: 'url("' + vars.currentImage.attr('src') + '") no-repeat -' + ((boxWidth + (cols * boxWidth)) - boxWidth) + 'px -' + ((boxHeight + (rows * boxHeight)) - boxHeight) + 'px'
  240.                                 }));
  241.                             }
  242.                         }
  243.                     }
  244.                 }
  245.             var nivoRun = function (slider, kids, settings, nudge) {
  246.                     var vars = slider.data('nivo:vars');
  247.                     if (vars && (vars.currentSlide == vars.totalSlides - 1)) {
  248.                         settings.lastSlide.call(this);
  249.                     }
  250.                     if ((!vars || vars.stop) && !nudge) return false;
  251.                     settings.beforeChange.call(this);
  252.                     if (!nudge) {
  253.                         slider.css('background', 'url("' + vars.currentImage.attr('src') + '") no-repeat');
  254.                     } else {
  255.                         if (nudge == 'prev') {
  256.                             slider.css('background', 'url("' + vars.currentImage.attr('src') + '") no-repeat');
  257.                         }
  258.                         if (nudge == 'next') {
  259.                             slider.css('background', 'url("' + vars.currentImage.attr('src') + '") no-repeat');
  260.                         }
  261.                     }
  262.                     vars.currentSlide++;
  263.                     if (vars.currentSlide == vars.totalSlides) {
  264.                         vars.currentSlide = 0;
  265.                         settings.slideshowEnd.call(this);
  266.                     }
  267.                     if (vars.currentSlide < 0) vars.currentSlide = (vars.totalSlides - 1);
  268.                     if ($(kids[vars.currentSlide]).is('img')) {
  269.                         vars.currentImage = $(kids[vars.currentSlide]);
  270.                     } else {
  271.                         vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
  272.                     }
  273.                     if (settings.controlNav) {
  274.                         $('.nivo-controlNav a', slider).removeClass('active');
  275.                         $('.nivo-controlNav a:eq(' + vars.currentSlide + ')', slider).addClass('active');
  276.                     }
  277.                     processCaption(settings);
  278.                     $('.nivo-slice', slider).remove();
  279.                     $('.nivo-box', slider).remove();
  280.                     if (settings.effect == 'random') {
  281.                         var anims = new Array('sliceDownRight', 'sliceDownLeft', 'sliceUpRight', 'sliceUpLeft', 'sliceUpDown', 'sliceUpDownLeft', 'fold', 'fade', 'boxRandom', 'boxRain', 'boxRainReverse', 'boxRainGrow', 'boxRainGrowReverse');
  282.                         vars.randAnim = anims[Math.floor(Math.random() * (anims.length + 1))];
  283.                         if (vars.randAnim == undefined) vars.randAnim = 'fade';
  284.                     }
  285.                     if (settings.effect.indexOf(',') != -1) {
  286.                         var anims = settings.effect.split(',');
  287.                         vars.randAnim = anims[Math.floor(Math.random() * (anims.length))];
  288.                         if (vars.randAnim == undefined) vars.randAnim = 'fade';
  289.                     }
  290.                     vars.running = true;
  291.                     if (settings.effect == 'sliceDown' || settings.effect == 'sliceDownRight' || vars.randAnim == 'sliceDownRight' || settings.effect == 'sliceDownLeft' || vars.randAnim == 'sliceDownLeft') {
  292.                         createSlices(slider, settings, vars);
  293.                         var timeBuff = 0;
  294.                         var i = 0;
  295.                         var slices = $('.nivo-slice', slider);
  296.                         if (settings.effect == 'sliceDownLeft' || vars.randAnim == 'sliceDownLeft') slices = $('.nivo-slice', slider)._reverse();
  297.                         slices.each(function () {
  298.                             var slice = $(this);
  299.                             slice.css({
  300.                                 'top': '0px'
  301.                             });
  302.                             if (i == settings.slices - 1) {
  303.                                 setTimeout(function () {
  304.                                     slice.animate({
  305.                                         height: '100%',
  306.                                         opacity: '1.0'
  307.                                     }, settings.animSpeed, '', function () {
  308.                                         slider.trigger('nivo:animFinished');
  309.                                     });
  310.                                 }, (100 + timeBuff));
  311.                             } else {
  312.                                 setTimeout(function () {
  313.                                     slice.animate({
  314.                                         height: '100%',
  315.                                         opacity: '1.0'
  316.                                     }, settings.animSpeed);
  317.                                 }, (100 + timeBuff));
  318.                             }
  319.                             timeBuff += 50;
  320.                             i++;
  321.                         });
  322.                     } else if (settings.effect == 'sliceUp' || settings.effect == 'sliceUpRight' || vars.randAnim == 'sliceUpRight' || settings.effect == 'sliceUpLeft' || vars.randAnim == 'sliceUpLeft') {
  323.                         createSlices(slider, settings, vars);
  324.                         var timeBuff = 0;
  325.                         var i = 0;
  326.                         var slices = $('.nivo-slice', slider);
  327.                         if (settings.effect == 'sliceUpLeft' || vars.randAnim == 'sliceUpLeft') slices = $('.nivo-slice', slider)._reverse();
  328.                         slices.each(function () {
  329.                             var slice = $(this);
  330.                             slice.css({
  331.                                 'bottom': '0px'
  332.                             });
  333.                             if (i == settings.slices - 1) {
  334.                                 setTimeout(function () {
  335.                                     slice.animate({
  336.                                         height: '100%',
  337.                                         opacity: '1.0'
  338.                                     }, settings.animSpeed, '', function () {
  339.                                         slider.trigger('nivo:animFinished');
  340.                                     });
  341.                                 }, (100 + timeBuff));
  342.                             } else {
  343.                                 setTimeout(function () {
  344.                                     slice.animate({
  345.                                         height: '100%',
  346.                                         opacity: '1.0'
  347.                                     }, settings.animSpeed);
  348.                                 }, (100 + timeBuff));
  349.                             }
  350.                             timeBuff += 50;
  351.                             i++;
  352.                         });
  353.                     } else if (settings.effect == 'sliceUpDown' || settings.effect == 'sliceUpDownRight' || vars.randAnim == 'sliceUpDown' || settings.effect == 'sliceUpDownLeft' || vars.randAnim == 'sliceUpDownLeft') {
  354.                         createSlices(slider, settings, vars);
  355.                         var timeBuff = 0;
  356.                         var i = 0;
  357.                         var v = 0;
  358.                         var slices = $('.nivo-slice', slider);
  359.                         if (settings.effect == 'sliceUpDownLeft' || vars.randAnim == 'sliceUpDownLeft') slices = $('.nivo-slice', slider)._reverse();
  360.                         slices.each(function () {
  361.                             var slice = $(this);
  362.                             if (i == 0) {
  363.                                 slice.css('top', '0px');
  364.                                 i++;
  365.                             } else {
  366.                                 slice.css('bottom', '0px');
  367.                                 i = 0;
  368.                             }
  369.                             if (v == settings.slices - 1) {
  370.                                 setTimeout(function () {
  371.                                     slice.animate({
  372.                                         height: '100%',
  373.                                         opacity: '1.0'
  374.                                     }, settings.animSpeed, '', function () {
  375.                                         slider.trigger('nivo:animFinished');
  376.                                     });
  377.                                 }, (100 + timeBuff));
  378.                             } else {
  379.                                 setTimeout(function () {
  380.                                     slice.animate({
  381.                                         height: '100%',
  382.                                         opacity: '1.0'
  383.                                     }, settings.animSpeed);
  384.                                 }, (100 + timeBuff));
  385.                             }
  386.                             timeBuff += 50;
  387.                             v++;
  388.                         });
  389.                     } else if (settings.effect == 'fold' || vars.randAnim == 'fold') {
  390.                         createSlices(slider, settings, vars);
  391.                         var timeBuff = 0;
  392.                         var i = 0;
  393.                         $('.nivo-slice', slider).each(function () {
  394.                             var slice = $(this);
  395.                             var origWidth = slice.width();
  396.                             slice.css({
  397.                                 top: '0px',
  398.                                 height: '100%',
  399.                                 width: '0px'
  400.                             });
  401.                             if (i == settings.slices - 1) {
  402.                                 setTimeout(function () {
  403.                                     slice.animate({
  404.                                         width: origWidth,
  405.                                         opacity: '1.0'
  406.                                     }, settings.animSpeed, '', function () {
  407.                                         slider.trigger('nivo:animFinished');
  408.                                     });
  409.                                 }, (100 + timeBuff));
  410.                             } else {
  411.                                 setTimeout(function () {
  412.                                     slice.animate({
  413.                                         width: origWidth,
  414.                                         opacity: '1.0'
  415.                                     }, settings.animSpeed);
  416.                                 }, (100 + timeBuff));
  417.                             }
  418.                             timeBuff += 50;
  419.                             i++;
  420.                         });
  421.                     } else if (settings.effect == 'fade' || vars.randAnim == 'fade') {
  422.                         createSlices(slider, settings, vars);
  423.                         var firstSlice = $('.nivo-slice:first', slider);
  424.                         firstSlice.css({
  425.                             'height': '100%',
  426.                             'width': slider.width() + 'px'
  427.                         });
  428.                         firstSlice.animate({
  429.                             opacity: '1.0'
  430.                         }, (settings.animSpeed * 2), '', function () {
  431.                             slider.trigger('nivo:animFinished');
  432.                         });
  433.                     } else if (settings.effect == 'slideInRight' || vars.randAnim == 'slideInRight') {
  434.                         createSlices(slider, settings, vars);
  435.                         var firstSlice = $('.nivo-slice:first', slider);
  436.                         firstSlice.css({
  437.                             'height': '100%',
  438.                             'width': '0px',
  439.                             'opacity': '1'
  440.                         });
  441.                         firstSlice.animate({
  442.                             width: slider.width() + 'px'
  443.                         }, (settings.animSpeed * 2), '', function () {
  444.                             slider.trigger('nivo:animFinished');
  445.                         });
  446.                     } else if (settings.effect == 'slideInLeft' || vars.randAnim == 'slideInLeft') {
  447.                         createSlices(slider, settings, vars);
  448.                         var firstSlice = $('.nivo-slice:first', slider);
  449.                         firstSlice.css({
  450.                             'height': '100%',
  451.                             'width': '0px',
  452.                             'opacity': '1',
  453.                             'left': '',
  454.                             'right': '0px'
  455.                         });
  456.                         firstSlice.animate({
  457.                             width: slider.width() + 'px'
  458.                         }, (settings.animSpeed * 2), '', function () {
  459.                             firstSlice.css({
  460.                                 'left': '0px',
  461.                                 'right': ''
  462.                             });
  463.                             slider.trigger('nivo:animFinished');
  464.                         });
  465.                     } else if (settings.effect == 'boxRandom' || vars.randAnim == 'boxRandom') {
  466.                         createBoxes(slider, settings, vars);
  467.                         var totalBoxes = settings.boxCols * settings.boxRows;
  468.                         var i = 0;
  469.                         var timeBuff = 0;
  470.                         var boxes = shuffle($('.nivo-box', slider));
  471.                         boxes.each(function () {
  472.                             var box = $(this);
  473.                             if (i == totalBoxes - 1) {
  474.                                 setTimeout(function () {
  475.                                     box.animate({
  476.                                         opacity: '1'
  477.                                     }, settings.animSpeed, '', function () {
  478.                                         slider.trigger('nivo:animFinished');
  479.                                     });
  480.                                 }, (100 + timeBuff));
  481.                             } else {
  482.                                 setTimeout(function () {
  483.                                     box.animate({
  484.                                         opacity: '1'
  485.                                     }, settings.animSpeed);
  486.                                 }, (100 + timeBuff));
  487.                             }
  488.                             timeBuff += 20;
  489.                             i++;
  490.                         });
  491.                     } else if (settings.effect == 'boxRain' || vars.randAnim == 'boxRain' || settings.effect == 'boxRainReverse' || vars.randAnim == 'boxRainReverse' || settings.effect == 'boxRainGrow' || vars.randAnim == 'boxRainGrow' || settings.effect == 'boxRainGrowReverse' || vars.randAnim == 'boxRainGrowReverse') {
  492.                         createBoxes(slider, settings, vars);
  493.                         var totalBoxes = settings.boxCols * settings.boxRows;
  494.                         var i = 0;
  495.                         var timeBuff = 0;
  496.                         var rowIndex = 0;
  497.                         var colIndex = 0;
  498.                         var box2Darr = new Array();
  499.                         box2Darr[rowIndex] = new Array();
  500.                         var boxes = $('.nivo-box', slider);
  501.                         if (settings.effect == 'boxRainReverse' || vars.randAnim == 'boxRainReverse' || settings.effect == 'boxRainGrowReverse' || vars.randAnim == 'boxRainGrowReverse') {
  502.                             boxes = $('.nivo-box', slider)._reverse();
  503.                         }
  504.                         boxes.each(function () {
  505.                             box2Darr[rowIndex][colIndex] = $(this);
  506.                             colIndex++;
  507.                             if (colIndex == settings.boxCols) {
  508.                                 rowIndex++;
  509.                                 colIndex = 0;
  510.                                 box2Darr[rowIndex] = new Array();
  511.                             }
  512.                         });
  513.                         for (var cols = 0; cols < (settings.boxCols * 2); cols++) {
  514.                             var prevCol = cols;
  515.                             for (var rows = 0; rows < settings.boxRows; rows++) {
  516.                                 if (prevCol >= 0 && prevCol < settings.boxCols) {
  517.                                     (function (row, col, time, i, totalBoxes) {
  518.                                         var box = $(box2Darr[row][col]);
  519.                                         var w = box.width();
  520.                                         var h = box.height();
  521.                                         if (settings.effect == 'boxRainGrow' || vars.randAnim == 'boxRainGrow' || settings.effect == 'boxRainGrowReverse' || vars.randAnim == 'boxRainGrowReverse') {
  522.                                             box.width(0).height(0);
  523.                                         }
  524.                                         if (i == totalBoxes - 1) {
  525.                                             setTimeout(function () {
  526.                                                 box.animate({
  527.                                                     opacity: '1',
  528.                                                     width: w,
  529.                                                     height: h
  530.                                                 }, settings.animSpeed / 1.3, '', function () {
  531.                                                     slider.trigger('nivo:animFinished');
  532.                                                 });
  533.                                             }, (100 + time));
  534.                                         } else {
  535.                                             setTimeout(function () {
  536.                                                 box.animate({
  537.                                                     opacity: '1',
  538.                                                     width: w,
  539.                                                     height: h
  540.                                                 }, settings.animSpeed / 1.3);
  541.                                             }, (100 + time));
  542.                                         }
  543.                                     })(rows, prevCol, timeBuff, i, totalBoxes);
  544.                                     i++;
  545.                                 }
  546.                                 prevCol--;
  547.                             }
  548.                             timeBuff += 100;
  549.                         }
  550.                     }
  551.                 }
  552.             var shuffle = function (arr) {
  553.                     for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
  554.                     return arr;
  555.                 }
  556.             var trace = function (msg) {
  557.                     if (this.console && typeof console.log != "undefined") console.log(msg);
  558.                 }
  559.             this.stop = function () {
  560.                 if (!$(element).data('nivo:vars').stop) {
  561.                     $(element).data('nivo:vars').stop = true;
  562.                     trace('Stop Slider');
  563.                 }
  564.             }
  565.             this.start = function () {
  566.                 if ($(element).data('nivo:vars').stop) {
  567.                     $(element).data('nivo:vars').stop = false;
  568.                     trace('Start Slider');
  569.                 }
  570.             }
  571.             settings.afterLoad.call(this);
  572.             return this;
  573.         };
  574.     $.fn.nivoSlider = function (options) {
  575.         return this.each(function (key, value) {
  576.             var element = $(this);
  577.             if (element.data('nivoslider')) return element.data('nivoslider');
  578.             var nivoslider = new NivoSlider(this, options);
  579.             element.data('nivoslider', nivoslider);
  580.         });
  581.     };
  582.     $.fn.nivoSlider.defaults = {
  583.         effect: 'random',
  584.         slices: 15,
  585.         boxCols: 8,
  586.         boxRows: 4,
  587.         animSpeed: 500,
  588.         pauseTime: 3000,
  589.         startSlide: 0,
  590.         directionNav: true,
  591.         directionNavHide: true,
  592.         controlNav: true,
  593.         controlNavThumbs: false,
  594.         controlNavThumbsFromRel: false,
  595.         controlNavThumbsSearch: '.jpg',
  596.         controlNavThumbsReplace: '_thumb.jpg',
  597.         keyboardNav: true,
  598.         pauseOnHover: true,
  599.         manualAdvance: false,
  600.         captionOpacity: 0.8,
  601.         prevText: 'Prev',
  602.         nextText: 'Next',
  603.         beforeChange: function () {},
  604.         afterChange: function () {},
  605.         slideshowEnd: function () {},
  606.         lastSlide: function () {},
  607.         afterLoad: function () {}
  608.     };
  609.     $.fn._reverse = [].reverse;
  610. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement