/**
* jQuery bxSlider v3.0
* http://bxslider.com
*
* Copyright 2010, Steven Wanderski
* http://bxcreative.com
*
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* 
*/
(function (a) { a.fn.bxSlider = function (b) { function Z(b, c, d, e) { var f = []; var g = d; var h = false; if (e == "backward") { b = a.makeArray(b); b.reverse() } while (g > 0) { a.each(b, function (b, d) { if (g > 0) { if (!h) { if (b == c) { h = true; f.push(a(this).clone()); g-- } } else { f.push(a(this).clone()); g-- } } else { return false } }) } return f } function Y() { var a = i.outerHeight() * b.displaySlideQty; return a } function X() { var a = i.outerWidth() * b.displaySlideQty; return a } function W(b, c) { if (c == "left") { var d = a(".pager", h).eq(b).position().left } else if (c == "top") { var d = a(".pager", h).eq(b).position().top } return d } function V() { if (!b.infiniteLoop && b.hideControlOnEnd) { if (x == F) { a(".bx-prev", h).hide() } else { a(".bx-prev", h).show() } if (x == G) { a(".bx-next", h).hide() } else { a(".bx-next", h).show() } } } function U(c, e, f, g) { p = a('<a href="" class="bx-start"></a>'); if (c == "text") { r = e } else { r = '<img src="' + e + '" />' } if (f == "text") { s = g } else { s = '<img src="' + g + '" />' } if (b.autoControlsSelector) { a(b.autoControlsSelector).append(p) } else { h.append('<div class="bx-auto"></div>'); a(".bx-auto", h).html(p) } p.click(function () { if (b.ticker) { if (a(this).hasClass("stop")) { d.stopTicker() } else if (a(this).hasClass("start")) { d.startTicker() } } else { if (a(this).hasClass("stop")) { d.stopShow(true) } else if (a(this).hasClass("start")) { d.startShow(true) } } return false }) } function T() { var c = a("img", g.eq(x)).attr("title"); if (c != "") { if (b.captionsSelector) { a(b.captionsSelector).html(c) } else { a(".bx-captions", h).html(c) } } else { if (b.captionsSelector) { a(b.captionsSelector).html(" ") } else { a(".bx-captions", h).html(" ") } } } function S(c) { var e = g.length; if (b.moveSlideQty > 1) { if (g.length % b.moveSlideQty != 0) { e = Math.ceil(g.length / b.moveSlideQty) } else { e = g.length / b.moveSlideQty } } var f = ""; if (b.buildPager) { for (var i = 0; i < e; i++) { f += b.buildPager(i, g.eq(i * b.moveSlideQty)) } } else if (c == "full") { for (var i = 1; i <= e; i++) { f += '<a href="" class="pager-link pager-' + i + '">' + i + "</a>" } } else if (c == "short") { f = '<span class="bx-pager-current">' + (b.startingSlide + 1) + "</span> " + b.pagerShortSeparator + ' <span class="bx-pager-total">' + g.length + "</span>" } if (b.pagerSelector) { a(b.pagerSelector).append(f); n = a(b.pagerSelector) } else { var j = a('<div class="bx-pager"></div>'); j.append(f); if (b.pagerLocation == "top") { h.prepend(j) } else if (b.pagerLocation == "bottom") { h.append(j) } n = a(".bx-pager", h) } n.children().click(function () { if (b.pagerType == "full") { var a = n.children().index(this); if (b.moveSlideQty > 1) { a *= b.moveSlideQty } d.goToSlide(a) } return false }) } function R(c, e, f, g) { var i = a('<a href="" class="bx-next"></a>'); var j = a('<a href="" class="bx-prev"></a>'); if (c == "text") { i.html(e) } else { i.html('<img src="' + e + '" />') } if (f == "text") { j.html(g) } else { j.html('<img src="' + g + '" />') } if (b.prevSelector) { a(b.prevSelector).append(j) } else { h.append(j) } if (b.nextSelector) { a(b.nextSelector).append(i) } else { h.append(i) } i.click(function () { d.goToNextSlide(); return false }); j.click(function () { d.goToPreviousSlide(); return false }) } function Q(c) { if (b.pagerType == "full" && b.pager) { a("a", n).removeClass(b.pagerActiveClass); a("a", n).eq(c).addClass(b.pagerActiveClass) } else if (b.pagerType == "short" && b.pager) { a(".bx-pager-current", n).html(x + 1) } } function P() { g.not(":eq(" + x + ")").fadeTo(b.speed, 0).css("zIndex", 98); g.eq(x).css("zIndex", 99).fadeTo(b.speed, 1, function () { E = false; if (jQuery.browser.msie) { g.eq(x).get(0).style.removeAttribute("filter") } b.onAfterSlide(x, g.length, g.eq(x)) }) } function O() { e.hover(function () { if (t) { d.stopTicker(false) } }, function () { if (t) { d.startTicker(false) } }) } function N() { h.find(".bx-window").hover(function () { if (t) { d.stopShow(false) } }, function () { if (t) { d.startShow(false) } }) } function M() { if (b.startImage != "") { startContent = b.startImage; startType = "image" } else { startContent = b.startText; startType = "text" } if (b.stopImage != "") { stopContent = b.stopImage; stopType = "image" } else { stopContent = b.stopText; stopType = "text" } U(startType, startContent, stopType, stopContent) } function L(a, c, d) { if (b.mode == "horizontal") { if (b.tickerDirection == "next") { e.animate({ left: "-=" + c + "px" }, d, "linear", function () { e.css("left", a); L(a, A, b.tickerSpeed) }) } else if (b.tickerDirection == "prev") { e.animate({ left: "+=" + c + "px" }, d, "linear", function () { e.css("left", a); L(a, A, b.tickerSpeed) }) } } else if (b.mode == "vertical") { if (b.tickerDirection == "next") { e.animate({ top: "-=" + c + "px" }, d, "linear", function () { e.css("top", a); L(a, B, b.tickerSpeed) }) } else if (b.tickerDirection == "prev") { e.animate({ top: "+=" + c + "px" }, d, "linear", function () { e.css("top", a); L(a, B, b.tickerSpeed) }) } } } function K() { if (b.auto) { if (!b.infiniteLoop) { if (b.autoDirection == "next") { o = setInterval(function () { x += b.moveSlideQty; if (x > G) { x = x % g.length } d.goToSlide(x, false) }, b.pause) } else if (b.autoDirection == "prev") { o = setInterval(function () { x -= b.moveSlideQty; if (x < 0) { negativeOffset = x % g.length; if (negativeOffset == 0) { x = 0 } else { x = g.length + negativeOffset } } d.goToSlide(x, false) }, b.pause) } } else { if (b.autoDirection == "next") { o = setInterval(function () { d.goToNextSlide(false) }, b.pause) } else if (b.autoDirection == "prev") { o = setInterval(function () { d.goToPreviousSlide(false) }, b.pause) } } } else if (b.ticker) { b.tickerSpeed *= 10; a(".pager", h).each(function (b) { A += a(this).width(); B += a(this).height() }); if (b.tickerDirection == "prev" && b.mode == "horizontal") { e.css("left", "-" + (A + y) + "px") } else if (b.tickerDirection == "prev" && b.mode == "vertical") { e.css("top", "-" + (B + z) + "px") } if (b.mode == "horizontal") { C = parseInt(e.css("left")); L(C, A, b.tickerSpeed) } else if (b.mode == "vertical") { D = parseInt(e.css("top")); L(D, B, b.tickerSpeed) } if (b.tickerHover) { O() } } } function J() { if (b.nextImage != "") { nextContent = b.nextImage; nextType = "image" } else { nextContent = b.nextText; nextType = "text" } if (b.prevImage != "") { prevContent = b.prevImage; prevType = "image" } else { prevContent = b.prevText; prevType = "text" } R(nextType, nextContent, prevType, prevContent) } function I() { if (b.mode == "horizontal" || b.mode == "vertical") { var c = Z(g, 0, b.moveSlideQty, "backward"); a.each(c, function (b) { e.prepend(a(this)) }); var d = g.length + b.moveSlideQty - 1; var f = g.length - b.displaySlideQty; var h = d - f; var i = Z(g, 0, h, "forward"); if (b.infiniteLoop) { a.each(i, function (b) { e.append(a(this)) }) } } } function H() { I(b.startingSlide); if (b.mode == "horizontal") { e.wrap('<div class="' + b.wrapperClass + '" style="width:' + l + 'px; position:relative;"></div>').wrap('<div class="bx-window" style="position:relative; overflow:hidden; width:' + l + 'px;"></div>').css({ width: "999999px", position: "relative", left: "-" + y + "px" }); e.children().css({ width: j, "float": "left", listStyle: "none" }); h = e.parent().parent(); g.addClass("pager") } else if (b.mode == "vertical") { e.wrap('<div class="' + b.wrapperClass + '" style="width:' + v + 'px; position:relative;"></div>').wrap('<div class="bx-window" style="width:' + v + "px; height:" + m + 'px; position:relative; overflow:hidden;"></div>').css({ height: "999999px", position: "relative", top: "-" + z + "px" }); e.children().css({ listStyle: "none", height: w }); h = e.parent().parent(); g.addClass("pager") } else if (b.mode == "fade") { e.wrap('<div class="' + b.wrapperClass + '" style="width:' + v + 'px; position:relative;"></div>').wrap('<div class="bx-window" style="height:' + w + "px; width:" + v + 'px; position:relative; overflow:hidden;"></div>'); e.children().css({ listStyle: "none", position: "absolute", top: 0, left: 0, zIndex: 98 }); h = e.parent().parent(); g.not(":eq(" + x + ")").fadeTo(0, 0); g.eq(x).css("zIndex", 99) } if (b.captions && b.captionsSelector == null) { h.append('<div class="bx-captions"></div>') } } var c = { mode: "horizontal", infiniteLoop: true, hideControlOnEnd: false, controls: true, speed: 500, easing: "swing", pager: false, pagerSelector: null, pagerType: "full", pagerLocation: "bottom", pagerShortSeparator: "/", pagerActiveClass: "pager-active", nextText: "next", nextImage: "", nextSelector: null, prevText: "prev", prevImage: "", prevSelector: null, captions: false, captionsSelector: null, auto: false, autoDirection: "next", autoControls: false, autoControlsSelector: null, autoStart: true, autoHover: false, autoDelay: 0, pause: 3e3, startText: "start", startImage: "", stopText: "stop", stopImage: "", ticker: false, tickerSpeed: 5e3, tickerDirection: "next", tickerHover: false, wrapperClass: "bx-wrapper", startingSlide: 0, displaySlideQty: 1, moveSlideQty: 1, randomStart: false, onBeforeSlide: function () { }, onAfterSlide: function () { }, onLastSlide: function () { }, onFirstSlide: function () { }, onNextSlide: function () { }, onPrevSlide: function () { }, buildPager: null }; var b = a.extend(c, b); var d = this; var e = ""; var f = ""; var g = ""; var h = ""; var i = ""; var j = ""; var k = ""; var l = ""; var m = ""; var n = ""; var o = ""; var p = ""; var q = ""; var r = ""; var s = ""; var t = true; var u = false; var v = 0; var w = 0; var x = 0; var y = 0; var z = 0; var A = 0; var B = 0; var C = 0; var D = 0; var E = false; var F = 0; var G = g.length - 1; this.goToSlide = function (a, c) { if (!E) { E = true; x = a; b.onBeforeSlide(x, g.length, g.eq(x)); if (typeof c == "undefined") { var c = true } if (c) { if (b.auto) { d.stopShow(true) } } slide = a; if (slide == F) { b.onFirstSlide(x, g.length, g.eq(x)) } if (slide == G) { b.onLastSlide(x, g.length, g.eq(x)) } if (b.mode == "horizontal") { e.animate({ left: "-" + W(slide, "left") + "px" }, b.speed, b.easing, function () { E = false; b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "vertical") { e.animate({ top: "-" + W(slide, "top") + "px" }, b.speed, b.easing, function () { E = false; b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "fade") { P() } V(); if (b.moveSlideQty > 1) { a = Math.floor(a / b.moveSlideQty) } Q(a); T() } }; this.goToNextSlide = function (a) { if (typeof a == "undefined") { var a = true } if (a) { if (b.auto) { d.stopShow(true) } } if (!b.infiniteLoop) { if (!E) { var c = false; x = x + b.moveSlideQty; if (x <= G) { V(); b.onNextSlide(x, g.length, g.eq(x)); d.goToSlide(x) } else { x -= b.moveSlideQty } } } else { if (!E) { E = true; var c = false; x = x + b.moveSlideQty; if (x > G) { x = x % g.length; c = true } b.onNextSlide(x, g.length, g.eq(x)); b.onBeforeSlide(x, g.length, g.eq(x)); if (b.mode == "horizontal") { var f = b.moveSlideQty * k; e.animate({ left: "-=" + f + "px" }, b.speed, b.easing, function () { E = false; if (c) { e.css("left", "-" + W(x, "left") + "px") } b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "vertical") { var h = b.moveSlideQty * w; e.animate({ top: "-=" + h + "px" }, b.speed, b.easing, function () { E = false; if (c) { e.css("top", "-" + W(x, "top") + "px") } b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "fade") { P() } if (b.moveSlideQty > 1) { Q(Math.ceil(x / b.moveSlideQty)) } else { Q(x) } T() } } }; this.goToPreviousSlide = function (c) { if (typeof c == "undefined") { var c = true } if (c) { if (b.auto) { d.stopShow(true) } } if (!b.infiniteLoop) { if (!E) { var f = false; x = x - b.moveSlideQty; if (x < 0) { x = 0; if (b.hideControlOnEnd) { a(".bx-prev", h).hide() } } V(); b.onPrevSlide(x, g.length, g.eq(x)); d.goToSlide(x) } } else { if (!E) { E = true; var f = false; x = x - b.moveSlideQty; if (x < 0) { negativeOffset = x % g.length; if (negativeOffset == 0) { x = 0 } else { x = g.length + negativeOffset } f = true } b.onPrevSlide(x, g.length, g.eq(x)); b.onBeforeSlide(x, g.length, g.eq(x)); if (b.mode == "horizontal") { var i = b.moveSlideQty * k; e.animate({ left: "+=" + i + "px" }, b.speed, b.easing, function () { E = false; if (f) { e.css("left", "-" + W(x, "left") + "px") } b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "vertical") { var j = b.moveSlideQty * w; e.animate({ top: "+=" + j + "px" }, b.speed, b.easing, function () { E = false; if (f) { e.css("top", "-" + W(x, "top") + "px") } b.onAfterSlide(x, g.length, g.eq(x)) }) } else if (b.mode == "fade") { P() } if (b.moveSlideQty > 1) { Q(Math.ceil(x / b.moveSlideQty)) } else { Q(x) } T() } } }; this.goToFirstSlide = function (a) { if (typeof a == "undefined") { var a = true } d.goToSlide(F, a) }; this.goToLastSlide = function () { if (typeof a == "undefined") { var a = true } d.goToSlide(G, a) }; this.getCurrentSlide = function () { return x }; this.getSlideCount = function () { return g.length }; this.stopShow = function (a) { clearInterval(o); if (typeof a == "undefined") { var a = true } if (a && b.autoControls) { p.html(r).removeClass("stop").addClass("start"); t = false } }; this.startShow = function (a) { if (typeof a == "undefined") { var a = true } K(); if (a && b.autoControls) { p.html(s).removeClass("start").addClass("stop"); t = true } }; this.stopTicker = function (a) { e.stop(); if (typeof a == "undefined") { var a = true } if (a && b.ticker) { p.html(r).removeClass("stop").addClass("start"); t = false } }; this.startTicker = function (a) { if (b.mode == "horizontal") { if (b.tickerDirection == "next") { var c = parseInt(e.css("left")); var d = A + c + g.eq(0).width() } else if (b.tickerDirection == "prev") { var c = -parseInt(e.css("left")); var d = c - g.eq(0).width() } var f = d * b.tickerSpeed / A; L(C, d, f) } else if (b.mode == "vertical") { if (b.tickerDirection == "next") { var h = parseInt(e.css("top")); var d = B + h + g.eq(0).height() } else if (b.tickerDirection == "prev") { var h = -parseInt(e.css("top")); var d = h - g.eq(0).height() } var f = d * b.tickerSpeed / B; L(D, d, f); if (typeof a == "undefined") { var a = true } if (a && b.ticker) { p.html(s).removeClass("start").addClass("stop"); t = true } } }; this.initShow = function () { e = a(this); f = e.clone(); g = e.children(); h = ""; i = e.children(":first"); j = i.width(); v = 0; k = i.outerWidth(); w = 0; l = X(); m = Y(); E = false; n = ""; x = 0; y = 0; z = 0; o = ""; p = ""; q = ""; r = ""; s = ""; t = true; u = false; A = 0; B = 0; C = 0; D = 0; F = 0; G = g.length - 1; g.each(function (b) { if (a(this).outerHeight() > w) { w = a(this).outerHeight() } if (a(this).outerWidth() > v) { v = a(this).outerWidth() } }); if (b.randomStart) { var c = Math.floor(Math.random() * g.length); x = c; y = k * (b.moveSlideQty + c); z = w * (b.moveSlideQty + c) } else { x = b.startingSlide; y = k * (b.moveSlideQty + b.startingSlide); z = w * (b.moveSlideQty + b.startingSlide) } H(); if (b.pager && !b.ticker) { if (b.pagerType == "full") { S("full") } else if (b.pagerType == "short") { S("short") } } if (b.controls && !b.ticker) { J() } if (b.auto || b.ticker) { if (b.autoControls) { M() } if (b.autoStart) { setTimeout(function () { d.startShow(true) }, b.autoDelay) } else { d.stopShow(true) } if (b.autoHover && !b.ticker) { N() } } if (b.moveSlideQty > 1) { Q(Math.ceil(x / b.moveSlideQty)) } else { Q(x) } V(); if (b.captions) { T() } b.onAfterSlide(x, g.length, g.eq(x)) }; this.destroyShow = function () { clearInterval(o); a(".bx-next, .bx-prev, .bx-pager, .bx-auto", h).remove(); e.unwrap().unwrap().removeAttr("style"); e.children().removeAttr("style").not(".pager").remove(); g.removeClass("pager") }; this.reloadShow = function () { d.destroyShow(); d.initShow() }; this.each(function () { if (a(this).children().length > 0) { d.initShow() } }); return this }; jQuery.fx.prototype.cur = function () { if (this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null)) { return this.elem[this.prop] } var a = parseFloat(jQuery.css(this.elem, this.prop)); return a } })(jQuery)
