(function (a) { a.fn.asketicSwipe = function (b) { var c = { cycle: false, scale: 1, tolerance: .25, time: 300, touchSensitivity: 10, fitContainer: false, fitContainerMargin: 10, fitContainerUpscale: false }; return this.each(function () { function C(a) { var b = d.asketicSwipe.getImageIndex(); var c = d.asketicSwipe.getImageCount(); d.trigger(a, [b, c]) } function B() { if (w) { var b = 0; e.css("left", 0); e.find("li").each(function () { if (j == b) { a(this).css("display", "block") } else { a(this).css("display", "none") } console.log(b, j); b++ }) } } function A() { if (!w) { if (v) { var a = "left " + (c.time / 1e3).toString() + "s"; e.css("-transition", a); e.css("-moz-transition", a); e.css("-webkit-transition", a); e.css("-o-transition", a); e.css("-ms-transition", a); e.css("left", -j * k) } else { e.animate({ left: -j * k }, c.time) } } if (c.cycle) { clearTimeout(x); x = setTimeout(function () { if (j == 0) { j = i - 2 } else if (j == i - 1) { j = 1 } z(); if (!w) { e.css("left", -j * k) } }, c.time + 20) } B() } function z() { var a = ""; e.css("-transition", a); e.css("-moz-transition", a); e.css("-webkit-transition", a); e.css("-o-transition", a); e.css("-ms-transition", a) } var d = a(this); var e = a(this).find("ul:first-child"); var f = null; var g = null; var h = null; var i = 0; var j = 0; var k = 0; var l = 0; var m = 0; var n = null; var o = null; var p = false; var q = 0; var r = 0; var s = 0; var t = 0; var u = false; var v = !a.browser.msie && !navigator.userAgent.toLowerCase().match(/(blackberry|android|opera\ mini)/); var w = navigator.userAgent.toLowerCase().match(/(opera\ mini|symbian|nokia)/); var x = 0; var y = true; if (b) { a.extend(c, b) } n = a('<div id="asketic-swipe-handler"></div>').prependTo(d); o = n[0]; n.css("cursor", "pointer"); d.css("position", "relative"); n.css("position", "absolute"); e.css("position", "absolute"); e.css("width", "99999px"); e.css("padding", "0"); e.css("margin", "0"); e.css("z-index", "1"); n.css("z-index", "100"); if (a.browser.msie) { n.css("background-color", "red"); n.css("filter", "alpha(opacity=0)") } d.asketicSwipe.refresh = function () { f = e.find("li"); i = f.length; k = d.width(); m = d.height(); l = k / 2; if (c.cycle) { if (h) { h.remove() } if (g) { g.remove() } f = e.find("li"); i = f.length; h = a(f[f.length - 1]).clone().prependTo(e); g = a(f[0]).clone().appendTo(e); f = e.find("li"); i = f.length; j = 1 } e.css("left", -j * k); n.css("width", k); n.css("height", m); f.each(function () { var b = a(this); var d = b.find(":first-child"); var e = d.width() * c.scale; var f = d.height() * c.scale; if (c.fitContainer) { var g = k - c.fitContainerMargin * 2; var h = m - c.fitContainerMargin * 2; var i = e / f; var j = f / e; if (h < f || g < e || c.fitContainerUpscale) { if (g < e || c.fitContainerUpscale && g > e && g * j <= h) { e = g; f = e * j } if (h < f || c.fitContainerUpscale && h > f && h * i <= g) { f = h; e = f * i } } } b.css("width", k); b.css("height", m); b.css("list-style", "none"); b.css("padding", 0); b.css("margin", 0); b.css("float", "left"); d.css("display", "block"); d.css("z-index", "1"); d.css("margin-left", (k - e) / 2); d.css("margin-top", (m - f) / 2); d.css("width", e); d.css("height", f) }); var b = d.find("*"); b.css("-webkit-user-select", "none"); b.css("-khtml-user-select", "none"); b.css("-moz-user-select", "none"); b.css("-o-user-select", "none"); b.css("user-select", "none"); B() }; d.asketicSwipe.refresh(); n.mousedown(function (a) { if (!y) return false; if (u && !a.swipe) return false; if (!p) { z(); p = true; q = a.pageX } return false }); n.mousemove(function (a) { if (!y) return false; if (u && !a.swipe) return false; if (p) { r = a.pageX; var b = r - q; e.css("left", -j * k + b) } return false }); n.mouseup(function (a) { if (!y) return false; if (u && !a.swipe) return false; if (!p) return false; p = false; var b = a.pageX - q; if (!b) return false; if (-b > l - k * c.tolerance) { d.asketicSwipe.next() } else if (b > l - m * c.tolerance) { d.asketicSwipe.prev() } else { A() } return false }); n.mouseout(function (a) { if (!y) return false; n.trigger({ type: "mouseup", swipe: true, pageX: r }); return false }); d.asketicSwipe.getImageCount = function () { var a = i; if (c.cycle) { a -= 2 } return a }; d.asketicSwipe.getImageIndex = function () { var a = j; if (c.cycle) { if (a == 0) { a = i - 2 } else if (a == i - 1) { a = 1 } a -= 1 } return a }; d.asketicSwipe.moveTo = function (a, b) { if (c.cycle) { a += 1 } j = Math.min(Math.max(0, a), i); if (b && !w) { A() } else { z(); e.css("left", -j * k) } B() }; d.asketicSwipe.resize = function (b, c, f, g, h) { d.asketicSwipe.setEnabled(false); var i = d.asketicSwipe.getImageIndex(); if (f) { if (!h) { h = "linear" } d.find("li").css("visibility", "hidden"); var l = d.find("li img"); l = a(l[j]); l.css("visibility", "visible"); var n = b / k; var o = c / m; e.animate({ left: -j * b }, g, h); l.animate({ width: n * parseFloat(l.css("width")), height: o * parseFloat(l.css("height")), marginLeft: n * parseFloat(l.css("margin-left")), marginTop: o * parseFloat(l.css("margin-top")) }, g, h); d.find("li").animate({ width: b, height: c }, g, h); d.animate({ width: b, height: c }, g, h, function () { e.css("left", "auto"); d.find("li").css("visibility", "visible"); d.asketicSwipe.refresh(); d.asketicSwipe.moveTo(i); d.trigger("resizeComplete", [b, c]) }) } else { d.css("width", b); d.css("height", c); d.asketicSwipe.refresh(); d.asketicSwipe.moveTo(i); d.trigger("resizeComplete", [b, c]) } d.asketicSwipe.setEnabled(true) }; d.asketicSwipe.next = function () { j++; j = j >= i ? i - 1 : j; A(); C("nextComplete") }; d.asketicSwipe.setEnabled = function (a) { if (a) { d.removeClass("disabled") } else { d.addClass("disabled") } y = a; return y }; d.asketicSwipe.getEnabled = function () { return y }; d.asketicSwipe.prev = function () { j--; j = j < 0 ? 0 : j; A(); C("prevComplete") }; if (o.addEventListener && navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad|blackberry|android)/)) { u = true; function D(a) { s = t = a.targetTouches[0].pageY; n.trigger({ type: "mousedown", swipe: true, pageX: a.targetTouches[0].pageX }) } function E(a) { s = a.targetTouches[0].pageY; if (Math.abs(t - s) < c.touchSensitivity) { a.preventDefault() } n.trigger({ type: "mousemove", swipe: true, pageX: a.targetTouches[0].pageX }) } function F(a) { n.trigger({ type: "mouseup", swipe: true, pageX: r }) } function G(a) { n.trigger({ type: "mouseup", swipe: true, pageX: r }) } o.addEventListener("touchstart", D, false); o.addEventListener("touchmove", E, false); o.addEventListener("touchend", F, false); o.addEventListener("touchcancel", G, false) } }) } })(jQuery);
