(function (d) { d.fn.jCarouselLite = function (e) { e = d.extend({ btnPrev: null, btnNext: null, btnGo: null, mouseWheel: false, auto: null, speed: 200, easing: null, vertical: false, circular: true, visible: 1, start: 0, scroll: 1, beforeStart: null, afterEnd: null, onEndFirst: false, pauseOnHover: false, showPager: false, pager: "pager" }, e || {}); return this.each(function () { var j, f, g, u, r, z, l, p, q, D, C, t, m, B, o, F, G, h, x, A, n, k, E; n = e.start; k = n; if (e.onEndFirst && e.circular) { console.log("Please diable either circular or onEndFirst. Both cannot be enabled.") } j = false, f = e.vertical ? "top" : "left", g = e.vertical ? "height" : "width"; u = d(this), r = d("ul", u), z = d("li", r), l = z.size(), p = e.visible; if (e.circular) { r.prepend(z.slice(l - p - 1 + 1).clone()).append(z.slice(0, p).clone()); e.start += p } q = d("li", r), m = q.size(), B = e.start; u.css("visibility", "visible"); q.css({ overflow: "hidden", "float": e.vertical ? "none" : "left" }); r.css({ margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1" }); u.css({ overflow: "hidden", position: "relative", "z-index": "2", left: "0px" }); D = e.vertical ? a(q) : c(q); C = D * m; t = D * p; q.css({ width: q.width(), height: q.height() }); r.css(g, C + "px").css(f, -(B * D)); u.css(g, t + "px"); o = false; h = null; A = "." + (n += ""); x = l; if (e.pauseOnHover) { u.hover(function () { o = true }, function () { o = false }) } if (e.showPager) { G = d("<ul></ul>"); h = new Array(); for (i = x - 1; i >= 0; i--) { E = d("<li></li>"); h[i] = ("." + (i += "")); E.addClass(i += ""); if (i == n) { E.addClass("selected") } E.appendTo(G) } F = d("<div></div>"); F.addClass(e.pager); F.css({ "z-index": "3" }); G.appendTo(F); F.appendTo(u); F.hover(function () { o = false }, function () { o = false }) } function s(v) { if (e.showPager) { G.children("li" + A).removeClass("selected"); if (e.circular) { v -= 1; m - 2 == v ? A = ".0" : (A = "." + v.toString()) } else { if (e.onEndFirst) { v == 0 ? A = ".0" : A = ("." + v.toString()) } else { return } } G.children("li" + A).addClass("selected") } } if (e.btnPrev) { d(e.btnPrev).click(function () { return y(B - e.scroll) }) } if (e.btnNext) { d(e.btnNext).click(function () { return y(B + e.scroll) }) } if (e.btnGo) { d.each(e.btnGo, function (v, H) { d(H).click(function () { return y(e.circular ? e.visible + v : v) }) }) } if (e.showPager && h) { d.each(h, function (v, H) { d(H).click(function () { return y(e.circular ? e.visible + v : v) }) }) } if (e.mouseWheel && u.mousewheel) { u.mousewheel(function (v, H) { return H > 0 ? y(B - e.scroll) : y(B + e.scroll) }) } if (e.auto) { setInterval(function () { y(B + e.scroll) }, e.auto + e.speed) } function w() { return q.slice(B).slice(0, p) } function y(v) { if (!j && !o) { if (e.beforeStart) { e.beforeStart.call(this, w()) } if (e.circular) { if (v <= e.start - p - 1) { r.css(f, -((m - (p * 2)) * D) + "px"); B = v == e.start - p - 1 ? m - (p * 2) - 1 : m - (p * 2) - e.scroll; s(B) } else { if (v >= m - p + 1) { r.css(f, -((p) * D) + "px"); B = v == m - p + 1 ? p + 1 : p + e.scroll; s(B) } else { B = v; s(B) } } } else { if (e.onEndFirst && v > m - p) { B = 0; s(B) } else { if (v < 0 || v > m - p) { return } B = v; s(B) } } j = true; r.animate(f == "left" ? { left: -(B * D)} : { top: -(B * D) }, e.speed, e.easing, function () { if (e.afterEnd) { e.afterEnd.call(this, w()) } j = false }); if (!e.circular) { d(e.btnPrev + "," + e.btnNext).removeClass("disabled"); d((B - e.scroll < 0 && e.btnPrev) || (B + e.scroll > m - p && e.btnNext) || []).addClass("disabled") } } return false } }) }; function b(e, f) { return parseInt(d.css(e[0], f)) || 0 } function c(e) { return e[0].offsetWidth + b(e, "marginLeft") + b(e, "marginRight") } function a(e) { return e[0].offsetHeight + b(e, "marginTop") + b(e, "marginBottom") } })(jQuery);
