﻿/*
* jQuery Nivo Slider v2.4
* http://nivo.dev7studios.com
*
* Copyright 2011, Gilbert Pellegrom
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/

 (function(a) 
 {
     var A = function(s, v) 
     {
         var f = a.extend({}, a.fn.nivoSlider.defaults, v), g = { currentSlide: 0, currentImage: "", totalSlides: 0, randAnim: "", running: false, paused: false, stop: false }, e = a(s); e.data("nivo:vars", g); e.css("position", "relative"); e.addClass("nivoSlider");
         var j = e.children();
         j.each(function() 
         {
             var b = a(this), h = "";
             if (!b.is("img")) 
             {

                 if (b.is("a")) {
                     b.addClass("nivo-imageLink");
                     h = b
                 }
                 b = b.find("img:first")
             }
             var c = b.width();
             if (c == 0)
                 c = b.attr("width");
             var o = b.height();
             if (o == 0)
                 o = b.attr("height");
             c > e.width() && e.width(c);
             o > e.height() && e.height(o);
             h != "" && h.css("display", "none");
             b.css("display", "none"); 
                   g.totalSlides++
               });
               if (f.startSlide > 0) {
                   if (f.startSlide >= g.totalSlides)
                       f.startSlide = g.totalSlides - 1;
                   g.currentSlide = f.startSlide
               }
               
               g.currentImage = a(j[g.currentSlide]).is("img") ? a(j[g.currentSlide]) : a(j[g.currentSlide]).find("img:first");
               a(j[g.currentSlide]).is("a") && a(j[g.currentSlide]).css("display", "block");
               e.css("background", 'url("' + g.currentImage.attr("src") + '") no-repeat'); 
        
         for (var k = 0; k < f.slices; k++) {
             var p = Math.round(e.width() / f.slices); 
            k == f.slices - 1 ? e.append(a('<div class="nivo-slice"></div>').css({ left: p * k + "px", width: e.width() - p * k + "px" })) : e.append(a('<div class="nivo-slice"></div>').css({ left: p * k + "px", width: p + "px" }))

        }


        
        var l = 0;

        if (!f.manualAdvance && j.length > 1)
            l = setInterval(function() { r(e, j, f, false) }, f.pauseTime);










    e.bind("nivo:animFinished", function() 
    {
     
      g.running = false;

      a(j).each(function() {
      a(this).is("a") && a(this).css("display", "none") 
       });

    a(j[g.currentSlide]).is("a") && a(j[g.currentSlide]).css("display", "block");
    if (l == "" && !g.paused && !f.manualAdvance)
        l = setInterval(function() { r(e, j, f, false) }, f.pauseTime); f.afterChange.call(this)});

    var w = function(b, h) 
    {
       var c = 0;
       a(".nivo-slice", b).each(function() {
       var o = a(this), d = Math.round(b.width() / h.slices);
       c == h.slices - 1 ? o.css("width", b.width() - d * c + "px") : o.css("width", d + "px"); 
       c++ }) }, r = function(b, h, c, o) {
       var d = b.data("nivo:vars"); d && d.currentSlide == d.totalSlides - 1 && c.lastSlide.call(this); if ((!d || d.stop) && !o) return false; c.beforeChange.call(this);
            if (o) { o == "prev" && b.css("background", 'url("' + d.currentImage.attr("src") + '") no-repeat'); o == "next" && b.css("background", 'url("' + d.currentImage.attr("src") + '") no-repeat') } else b.css("background", 'url("' + d.currentImage.attr("src") + '") no-repeat'); d.currentSlide++; if (d.currentSlide == d.totalSlides) { d.currentSlide = 0; c.slideshowEnd.call(this) } if (d.currentSlide < 0) d.currentSlide = d.totalSlides - 1; d.currentImage = a(h[d.currentSlide]).is("img") ? a(h[d.currentSlide]) : a(h[d.currentSlide]).find("img:first"); if (c.controlNav) {
                a(".nivo-controlNav a",
b).removeClass("active"); a(".nivo-controlNav a:eq(" + d.currentSlide + ")", b).addClass("active")
            } if (d.currentImage.attr("title") != "") { var u = d.currentImage.attr("title"); if (u.substr(0, 1) == "#") u = a(u).html(); a(".nivo-caption", b).css("display") == "block" ? a(".nivo-caption p", b).fadeOut(c.animSpeed, function() { a(this).html(u); a(this).fadeIn(c.animSpeed) }) : a(".nivo-caption p", b).html(u); a(".nivo-caption", b).fadeIn(c.animSpeed) } else a(".nivo-caption", b).fadeOut(c.animSpeed); var m = 0; a(".nivo-slice", b).each(function() {
                var i =
Math.round(b.width() / c.slices); a(this).css({ height: "0px", opacity: "0", background: 'url("' + d.currentImage.attr("src") + '") no-repeat -' + (i + m * i - i) + "px 0%" }); m++
            }); 
            
            if (c.effect == "random") { h = ["sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade", "slideInRight", "slideInLeft"]; d.randAnim = h[Math.floor(Math.random() * (h.length + 1))]; if (d.randAnim == undefined) d.randAnim = "fade" } if (c.effect.indexOf(",") != -1) {
                h = c.effect.split(","); d.randAnim = h[Math.floor(Math.random() *
h.length)]; if (d.randAnim == undefined) d.randAnim = "fade"
            } d.running = true; if (c.effect == "sliceDown" || c.effect == "sliceDownRight" || d.randAnim == "sliceDownRight" || c.effect == "sliceDownLeft" || d.randAnim == "sliceDownLeft") {
                var n = 0; m = 0; w(b, c); h = a(".nivo-slice", b); if (c.effect == "sliceDownLeft" || d.randAnim == "sliceDownLeft") h = a(".nivo-slice", b)._reverse(); h.each(function() {
                    var i = a(this); i.css({ top: "0px" }); m == c.slices - 1 ? setTimeout(function() { i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed, "", function() { b.trigger("nivo:animFinished") }) },
100 + n) : setTimeout(function() { i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed) }, 100 + n); n += 50; m++
                })
            } else if (c.effect == "sliceUp" || c.effect == "sliceUpRight" || d.randAnim == "sliceUpRight" || c.effect == "sliceUpLeft" || d.randAnim == "sliceUpLeft") {
                m = n = 0; w(b, c); h = a(".nivo-slice", b); if (c.effect == "sliceUpLeft" || d.randAnim == "sliceUpLeft") h = a(".nivo-slice", b)._reverse(); h.each(function() {
                    var i = a(this); i.css({ bottom: "0px" }); m == c.slices - 1 ? setTimeout(function() {
                        i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed, "",
function() { b.trigger("nivo:animFinished") })
                    }, 100 + n) : setTimeout(function() { i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed) }, 100 + n); n += 50; m++
                })
            } else if (c.effect == "sliceUpDown" || c.effect == "sliceUpDownRight" || d.randAnim == "sliceUpDown" || c.effect == "sliceUpDownLeft" || d.randAnim == "sliceUpDownLeft") {
                var x = m = n = 0; w(b, c); h = a(".nivo-slice", b); if (c.effect == "sliceUpDownLeft" || d.randAnim == "sliceUpDownLeft") h = a(".nivo-slice", b)._reverse(); h.each(function() {
                    var i = a(this); if (m == 0) { i.css("top", "0px"); m++ } else {
                        i.css("bottom",
"0px"); m = 0
                    } x == c.slices - 1 ? setTimeout(function() { i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed, "", function() { b.trigger("nivo:animFinished") }) }, 100 + n) : setTimeout(function() { i.animate({ height: "100%", opacity: "1.0" }, c.animSpeed) }, 100 + n); n += 50; x++
                })
            } else if (c.effect == "fold" || d.randAnim == "fold") {
                m = n = 0; w(b, c); a(".nivo-slice", b).each(function() {
                    var i = a(this), y = i.width(); i.css({ top: "0px", height: "100%", width: "0px" }); m == c.slices - 1 ? setTimeout(function() { i.animate({ width: y, opacity: "1.0" }, c.animSpeed, "", function() { b.trigger("nivo:animFinished") }) },
100 + n) : setTimeout(function() { i.animate({ width: y, opacity: "1.0" }, c.animSpeed) }, 100 + n); n += 50; m++
                })
            } else if (c.effect == "fade" || d.randAnim == "fade") { var q = a(".nivo-slice:first", b); q.css({ height: "100%", width: b.width() + "px" }); q.animate({ opacity: "1.0" }, c.animSpeed * 2, "", function() { b.trigger("nivo:animFinished") }) } else if (c.effect == "slideInRight" || d.randAnim == "slideInRight") { q = a(".nivo-slice:first", b); q.css({ height: "100%", width: "0px", opacity: "1" }); q.animate({ width: b.width() + "px" }, c.animSpeed * 2, "", function() { b.trigger("nivo:animFinished") }) } else if (c.effect ==
"slideInLeft" || d.randAnim == "slideInLeft") { q = a(".nivo-slice:first", b); q.css({ height: "100%", width: "0px", opacity: "1", left: "", right: "0px" }); q.animate({ width: b.width() + "px" }, c.animSpeed * 2, "", function() { q.css({ left: "0px", right: "" }); b.trigger("nivo:animFinished") }) } 
        }, z = function(b) { this.console && typeof console.log != "undefined" && console.log(b) }; this.stop = function() { if (!a(s).data("nivo:vars").stop) { a(s).data("nivo:vars").stop = true; z("Stop Slider") } }; this.start = function() {
            if (a(s).data("nivo:vars").stop) {
                a(s).data("nivo:vars").stop =
false; z("Start Slider")
            } 
        }; f.afterLoad.call(this)
    }; a.fn.nivoSlider = function(s) { return this.each(function() { var v = a(this); if (!v.data("nivoslider")) { var f = new A(this, s); v.data("nivoslider", f) } }) }; a.fn.nivoSlider.defaults = { effect: "random", slices: 15, animSpeed: 500, pauseTime: 3E3, startSlide: 0, directionNav: true, directionNavHide: true, controlNav: true, controlNavThumbs: false, controlNavThumbsFromRel: false, controlNavThumbsSearch: ".jpg", controlNavThumbsReplace: "_thumb.jpg", keyboardNav: true, pauseOnHover: true, manualAdvance: false,
        captionOpacity: 0.8, beforeChange: function() { }, afterChange: function() { }, slideshowEnd: function() { }, lastSlide: function() { }, afterLoad: function() { } 
    }; a.fn._reverse = [].reverse
})(jQuery);
