/* * jQuery Nivo Slider v3.2 * http://nivo.dev7studios.com * * Copyright 2012, Dev7studios * Free to use and abuse under the MIT license. * http://www.opensource.org/licenses/mit-license.php */ (function (e) { var t = function (t, n) { var r = e.extend({}, e.fn.nivoSlider.defaults, n); var i = { currentSlide: 0, currentImage: "", totalSlides: 0, running: false, paused: false, stop: false, controlNavEl: false }; var s = e(t); s.data("nivo:vars", i).addClass("nivoSlider"); var o = s.children(); o.each(function () { var t = e(this); var n = ""; if (!t.is("img")) { if (t.is("a")) { t.addClass("nivo-imageLink"); n = t } t = t.find("img:first") } var r = r === 0 ? t.attr("width") : t.width(), s = s === 0 ? t.attr("height") : t.height(); if (n !== "") { n.css("display", "none") } t.css("display", "none"); i.totalSlides++ }); if (r.randomStart) { r.startSlide = Math.floor(Math.random() * i.totalSlides) } if (r.startSlide > 0) { if (r.startSlide >= i.totalSlides) { r.startSlide = i.totalSlides - 1 } i.currentSlide = r.startSlide } if (e(o[i.currentSlide]).is("img")) { i.currentImage = e(o[i.currentSlide]) } else { i.currentImage = e(o[i.currentSlide]).find("img:first") } if (e(o[i.currentSlide]).is("a")) { e(o[i.currentSlide]).css("display", "block") } var u = e("").addClass("nivo-main-image"); u.attr("src", i.currentImage.attr("src")).show(); u.attr("role", "presentation"); u.attr("alt", "imágen activa"); s.append(u); e(window).resize(function () { s.children("img").width(s.width()); u.attr("src", i.currentImage.attr("src")); u.stop().height("auto"); e(".nivo-slice").remove(); e(".nivo-box").remove() }); s.append(e('
')); var a = function (t) { var n = e(".nivo-caption", s); if (i.currentImage.attr("title") != "" && i.currentImage.attr("title") != undefined) { var r = i.currentImage.attr("title"); if (r.substr(0, 1) == "#") r = e(r).html(); if (n.css("display") == "block") { setTimeout(function () { n.html(r) }, t.animSpeed) } else { n.html(r); n.stop().fadeIn(t.animSpeed) } } else { n.stop().fadeOut(t.animSpeed) } }; a(r); var f = 0; if (!r.manualAdvance && o.length > 1) { f = setInterval(function () { d(s, o, r, false) }, r.pauseTime) } if (r.directionNav) { s.append('
' + r.prevText + '' + r.nextText + "
"); e(s).on("click", "a.nivo-prevNav", function () { if (i.running) { return false } clearInterval(f); f = ""; i.currentSlide -= 2; d(s, o, r, "prev") }); e(s).on("click", "a.nivo-nextNav", function () { if (i.running) { return false } clearInterval(f); f = ""; d(s, o, r, "next") }) } if (r.controlNav) { i.controlNavEl = e('
'); s.after(i.controlNavEl); for (var l = 0; l < o.length; l++) { if (r.controlNavThumbs) { i.controlNavEl.addClass("nivo-thumbs-enabled"); var c = o.eq(l); if (!c.is("img")) { c = c.find("img:first") } if (c.attr("data-thumb")) i.controlNavEl.append('') } else { i.controlNavEl.append('' + (l + 1) + "") } } e("a:eq(" + i.currentSlide + ")", i.controlNavEl).addClass("active"); e("a", i.controlNavEl).bind("click", function () { if (i.running) return false; if (e(this).hasClass("active")) return false; clearInterval(f); f = ""; u.attr("src", i.currentImage.attr("src")); i.currentSlide = e(this).attr("rel") - 1; d(s, o, r, "control") }) } if (r.pauseOnHover) { s.hover(function () { i.paused = true; clearInterval(f); f = "" }, function () { i.paused = false; if (f === "" && !r.manualAdvance) { f = setInterval(function () { d(s, o, r, false) }, r.pauseTime) } }) } s.bind("nivo:animFinished", function () { u.attr("src", i.currentImage.attr("src")); i.running = false; e(o).each(function () { if (e(this).is("a")) { e(this).css("display", "none") } }); if (e(o[i.currentSlide]).is("a")) { e(o[i.currentSlide]).css("display", "block") } if (f === "" && !i.paused && !r.manualAdvance) { f = setInterval(function () { d(s, o, r, false) }, r.pauseTime) } r.afterChange.call(this) }); var h = function (t, n, r) { if (e(r.currentImage).parent().is("a")) e(r.currentImage).parent().css("display", "block"); e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility", "hidden").show(); var i = e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").parent().is("a") ? e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").parent().height() : e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").height(); for (var s = 0; s < n.slices; s++) { var o = Math.round(t.width() / n.slices); if (s === n.slices - 1) { t.append(e('
').css({ left: o * s + "px", width: t.width() - o * s + "px", height: i + "px", opacity: "0", overflow: "hidden" })) } else { t.append(e('
').css({ left: o * s + "px", width: o + "px", height: i + "px", opacity: "0", overflow: "hidden" })) } } e(".nivo-slice", t).height(i); u.stop().animate({ height: e(r.currentImage).height() }, n.animSpeed) }; var p = function (t, n, r) { if (e(r.currentImage).parent().is("a")) e(r.currentImage).parent().css("display", "block"); e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility", "hidden").show(); var i = Math.round(t.width() / n.boxCols), s = Math.round(e('img[src="' + r.currentImage.attr("src") + '"]', t).not(".nivo-main-image,.nivo-control img").height() / n.boxRows); for (var o = 0; o < n.boxRows; o++) { for (var a = 0; a < n.boxCols; a++) { if (a === n.boxCols - 1) { t.append(e('
').css({ opacity: 0, left: i * a + "px", top: s * o + "px", width: t.width() - i * a + "px" })); e('.nivo-box[name="' + a + '"]', t).height(e('.nivo-box[name="' + a + '"] img', t).height() + "px") } else { t.append(e('
').css({ opacity: 0, left: i * a + "px", top: s * o + "px", width: i + "px" })); e('.nivo-box[name="' + a + '"]', t).height(e('.nivo-box[name="' + a + '"] img', t).height() + "px") } } } u.stop().animate({ height: e(r.currentImage).height() }, n.animSpeed) }; var d = function (t, n, r, i) { var s = t.data("nivo:vars"); if (s && s.currentSlide === s.totalSlides - 1) { r.lastSlide.call(this) } if ((!s || s.stop) && !i) { return false } r.beforeChange.call(this); if (!i) { u.attr("src", s.currentImage.attr("src")) } else { if (i === "prev") { u.attr("src", s.currentImage.attr("src")) } if (i === "next") { u.attr("src", s.currentImage.attr("src")) } } s.currentSlide++; if (s.currentSlide === s.totalSlides) { s.currentSlide = 0; r.slideshowEnd.call(this) } if (s.currentSlide < 0) { s.currentSlide = s.totalSlides - 1 } if (e(n[s.currentSlide]).is("img")) { s.currentImage = e(n[s.currentSlide]) } else { s.currentImage = e(n[s.currentSlide]).find("img:first") } if (r.controlNav) { e("a", s.controlNavEl).removeClass("active"); e("a:eq(" + s.currentSlide + ")", s.controlNavEl).addClass("active") } a(r); e(".nivo-slice", t).remove(); e(".nivo-box", t).remove(); var o = r.effect, f = ""; if (r.effect === "random") { f = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade", "boxRandom", "boxRain", "boxRainReverse", "boxRainGrow", "boxRainGrowReverse"); o = f[Math.floor(Math.random() * (f.length + 1))]; if (o === undefined) { o = "fade" } } if (r.effect.indexOf(",") !== -1) { f = r.effect.split(","); o = f[Math.floor(Math.random() * f.length)]; if (o === undefined) { o = "fade" } } if (s.currentImage.attr("data-transition")) { o = s.currentImage.attr("data-transition") } s.running = true; var l = 0, c = 0, d = "", m = "", g = "", y = ""; if (o === "sliceDown" || o === "sliceDownRight" || o === "sliceDownLeft") { h(t, r, s); l = 0; c = 0; d = e(".nivo-slice", t); if (o === "sliceDownLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function () { var n = e(this); n.css({ top: "0px" }); if (c === r.slices - 1) { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed, "", function () { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "sliceUp" || o === "sliceUpRight" || o === "sliceUpLeft") { h(t, r, s); l = 0; c = 0; d = e(".nivo-slice", t); if (o === "sliceUpLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function () { var n = e(this); n.css({ bottom: "0px" }); if (c === r.slices - 1) { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed, "", function () { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "sliceUpDown" || o === "sliceUpDownRight" || o === "sliceUpDownLeft") { h(t, r, s); l = 0; c = 0; var b = 0; d = e(".nivo-slice", t); if (o === "sliceUpDownLeft") { d = e(".nivo-slice", t)._reverse() } d.each(function () { var n = e(this); if (c === 0) { n.css("top", "0px"); c++ } else { n.css("bottom", "0px"); c = 0 } if (b === r.slices - 1) { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed, "", function () { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function () { n.animate({ opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; b++ }) } else if (o === "fold") { h(t, r, s); l = 0; c = 0; e(".nivo-slice", t).each(function () { var n = e(this); var i = n.width(); n.css({ top: "0px", width: "0px" }); if (c === r.slices - 1) { setTimeout(function () { n.animate({ width: i, opacity: "1.0" }, r.animSpeed, "", function () { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function () { n.animate({ width: i, opacity: "1.0" }, r.animSpeed) }, 100 + l) } l += 50; c++ }) } else if (o === "fade") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: t.width() + "px" }); m.animate({ opacity: "1.0" }, r.animSpeed * 2, "", function () { t.trigger("nivo:animFinished") }) } else if (o === "slideInRight") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: "0px", opacity: "1" }); m.animate({ width: t.width() + "px" }, r.animSpeed * 2, "", function () { t.trigger("nivo:animFinished") }) } else if (o === "slideInLeft") { h(t, r, s); m = e(".nivo-slice:first", t); m.css({ width: "0px", opacity: "1", left: "", right: "0px" }); m.animate({ width: t.width() + "px" }, r.animSpeed * 2, "", function () { m.css({ left: "0px", right: "" }); t.trigger("nivo:animFinished") }) } else if (o === "boxRandom") { p(t, r, s); g = r.boxCols * r.boxRows; c = 0; l = 0; y = v(e(".nivo-box", t)); y.each(function () { var n = e(this); if (c === g - 1) { setTimeout(function () { n.animate({ opacity: "1" }, r.animSpeed, "", function () { t.trigger("nivo:animFinished") }) }, 100 + l) } else { setTimeout(function () { n.animate({ opacity: "1" }, r.animSpeed) }, 100 + l) } l += 20; c++ }) } else if (o === "boxRain" || o === "boxRainReverse" || o === "boxRainGrow" || o === "boxRainGrowReverse") { p(t, r, s); g = r.boxCols * r.boxRows; c = 0; l = 0; var w = 0; var E = 0; var S = []; S[w] = []; y = e(".nivo-box", t); if (o === "boxRainReverse" || o === "boxRainGrowReverse") { y = e(".nivo-box", t)._reverse() } y.each(function () { S[w][E] = e(this); E++; if (E === r.boxCols) { w++; E = 0; S[w] = [] } }); for (var x = 0; x < r.boxCols * 2; x++) { var T = x; for (var N = 0; N < r.boxRows; N++) { if (T >= 0 && T < r.boxCols) { (function (n, i, s, u, a) { var f = e(S[n][i]); var l = f.width(); var c = f.height(); if (o === "boxRainGrow" || o === "boxRainGrowReverse") { f.width(0).height(0) } if (u === a - 1) { setTimeout(function () { f.animate({ opacity: "1", width: l, height: c }, r.animSpeed / 1.3, "", function () { t.trigger("nivo:animFinished") }) }, 100 + s) } else { setTimeout(function () { f.animate({ opacity: "1", width: l, height: c }, r.animSpeed / 1.3) }, 100 + s) } })(N, T, l, c, g); c++ } T-- } l += 100 } } }; var v = function (e) { for (var t, n, r = e.length; r; t = parseInt(Math.random() * r, 10), n = e[--r], e[r] = e[t], e[t] = n); return e }; var m = function (e) { if (this.console && typeof console.log !== "undefined") { console.log(e) } }; this.stop = function () { if (!e(t).data("nivo:vars").stop) { e(t).data("nivo:vars").stop = true; m("Stop Slider") } }; this.start = function () { if (e(t).data("nivo:vars").stop) { e(t).data("nivo:vars").stop = false; m("Start Slider") } }; r.afterLoad.call(this); return this }; e.fn.nivoSlider = function (n) { return this.each(function (r, i) { var s = e(this); if (s.data("nivoslider")) { return s.data("nivoslider") } var o = new t(this, n); s.data("nivoslider", o) }) }; e.fn.nivoSlider.defaults = { effect: "random", slices: 15, boxCols: 8, boxRows: 4, animSpeed: 500, pauseTime: 3e3, startSlide: 0, directionNav: true, controlNav: true, controlNavThumbs: false, pauseOnHover: true, manualAdvance: false, prevText: "Prev", nextText: "Next", randomStart: false, beforeChange: function () {}, afterChange: function () {}, slideshowEnd: function () {}, lastSlide: function () {}, afterLoad: function () {} }; e.fn._reverse = [].reverse })(jQuery)