/* * jquery caroufredsel 6.2.1 * demo's and documentation: * caroufredsel.dev7studios.com * * copyright (c) 2013 fred heusschen * www.frebsite.nl * * dual licensed under the mit and gpl licenses. * http://en.wikipedia.org/wiki/mit_license * http://en.wikipedia.org/wiki/gnu_general_public_license */ (function($) { function sc_setscroll(a, b, c) { return "transition" == c.transition && "swing" == b && (b = "ease"), { anims: [], duration: a, orgduration: a, easing: b, starttime: gettime() } } function sc_startscroll(a, b) { for (var c = 0, d = a.anims.length; d > c; c++) { var e = a.anims[c]; e && e[0][b.transition](e[1], a.duration, a.easing, e[2]) } } function sc_stopscroll(a, b) { is_boolean(b) || (b = !0), is_object(a.pre) && sc_stopscroll(a.pre, b); for (var c = 0, d = a.anims.length; d > c; c++) { var e = a.anims[c]; e[0].stop(!0), b && (e[0].css(e[1]), is_function(e[2]) && e[2]()) } is_object(a.post) && sc_stopscroll(a.post, b) } function sc_afterscroll(a, b, c) { switch (b && b.remove(), c.fx) { case "fade": case "crossfade": case "cover-fade": case "uncover-fade": a.css("opacity", 1), a.css("filter", "") } } function sc_firecallbacks(a, b, c, d, e) { if (b[c] && b[c].call(a, d), e[c].length) for (var f = 0, g = e[c].length; g > f; f++) e[c][f].call(a, d); return [] } function sc_firequeue(a, b, c) { return b.length && (a.trigger(cf_e(b[0][0], c), b[0][1]), b.shift()), b } function sc_hidehiddenitems(a) { a.each(function() { var a = $(this); a.data("_cfs_ishidden", a.is(":hidden")).hide() }) } function sc_showhiddenitems(a) { a && a.each(function() { var a = $(this); a.data("_cfs_ishidden") || a.show() }) } function sc_cleartimers(a) { return a.auto && cleartimeout(a.auto), a.progress && clearinterval(a.progress), a } function sc_mapcallbackarguments(a, b, c, d, e, f, g) { return { width: g.width, height: g.height, items: { old: a, skipped: b, visible: c }, scroll: { items: d, direction: e, duration: f } } } function sc_getduration(a, b, c, d) { var e = a.duration; return "none" == a.fx ? 0 : ("auto" == e ? e = b.scroll.duration / b.scroll.items * c: 10 > e && (e = d / e), 1 > e ? 0 : ("fade" == a.fx && (e /= 2), math.round(e))) } function nv_shownavi(a, b, c) { var d = is_number(a.items.minimum) ? a.items.minimum: a.items.visible + 1; if ("show" == b || "hide" == b) var e = b; else if (d > b) { debug(c, "not enough items (" + b + " total, " + d + " needed): hiding navigation."); var e = "hide" } else var e = "show"; var f = "show" == e ? "removeclass": "addclass", g = cf_c("hidden", c); a.auto.button && a.auto.button[e]()[f](g), a.prev.button && a.prev.button[e]()[f](g), a.next.button && a.next.button[e]()[f](g), a.pagination.container && a.pagination.container[e]()[f](g) } function nv_enablenavi(a, b, c) { if (!a.circular && !a.infinite) { var d = "removeclass" == b || "addclass" == b ? b: !1, e = cf_c("disabled", c); if (a.auto.button && d && a.auto.button[d](e), a.prev.button) { var f = d || 0 == b ? "addclass": "removeclass"; a.prev.button[f](e) } if (a.next.button) { var f = d || b == a.items.visible ? "addclass": "removeclass"; a.next.button[f](e) } } } function go_getobject(a, b) { return is_function(b) ? b = b.call(a) : is_undefined(b) && (b = {}), b } function go_getitemsobject(a, b) { return b = go_getobject(a, b), is_number(b) ? b = { visible: b }: "variable" == b ? b = { visible: b, width: b, height: b }: is_object(b) || (b = {}), b } function go_getscrollobject(a, b) { return b = go_getobject(a, b), is_number(b) ? b = 50 >= b ? { items: b }: { duration: b }: is_string(b) ? b = { easing: b }: is_object(b) || (b = {}), b } function go_getnaviobject(a, b) { if (b = go_getobject(a, b), is_string(b)) { var c = cf_getkeycode(b); b = -1 == c ? $(b) : c } return b } function go_getautoobject(a, b) { return b = go_getnaviobject(a, b), is_jquery(b) ? b = { button: b }: is_boolean(b) ? b = { play: b }: is_number(b) && (b = { timeoutduration: b }), b.progress && (is_string(b.progress) || is_jquery(b.progress)) && (b.progress = { bar: b.progress }), b } function go_complementautoobject(a, b) { return is_function(b.button) && (b.button = b.button.call(a)), is_string(b.button) && (b.button = $(b.button)), is_boolean(b.play) || (b.play = !0), is_number(b.delay) || (b.delay = 0), is_undefined(b.pauseonevent) && (b.pauseonevent = !0), is_boolean(b.pauseonresize) || (b.pauseonresize = !0), is_number(b.timeoutduration) || (b.timeoutduration = 10 > b.duration ? 2500 : 5 * b.duration), b.progress && (is_function(b.progress.bar) && (b.progress.bar = b.progress.bar.call(a)), is_string(b.progress.bar) && (b.progress.bar = $(b.progress.bar)), b.progress.bar ? (is_function(b.progress.updater) || (b.progress.updater = $.fn.caroufredsel.progressbarupdater), is_number(b.progress.interval) || (b.progress.interval = 50)) : b.progress = !1), b } function go_getprevnextobject(a, b) { return b = go_getnaviobject(a, b), is_jquery(b) ? b = { button: b }: is_number(b) && (b = { key: b }), b } function go_complementprevnextobject(a, b) { return is_function(b.button) && (b.button = b.button.call(a)), is_string(b.button) && (b.button = $(b.button)), is_string(b.key) && (b.key = cf_getkeycode(b.key)), b } function go_getpaginationobject(a, b) { return b = go_getnaviobject(a, b), is_jquery(b) ? b = { container: b }: is_boolean(b) && (b = { keys: b }), b } function go_complementpaginationobject(a, b) { return is_function(b.container) && (b.container = b.container.call(a)), is_string(b.container) && (b.container = $(b.container)), is_number(b.items) || (b.items = !1), is_boolean(b.keys) || (b.keys = !1), is_function(b.anchorbuilder) || is_false(b.anchorbuilder) || (b.anchorbuilder = $.fn.caroufredsel.pageanchorbuilder), is_number(b.deviation) || (b.deviation = 0), b } function go_getswipeobject(a, b) { return is_function(b) && (b = b.call(a)), is_undefined(b) && (b = { ontouch: !1 }), is_true(b) ? b = { ontouch: b }: is_number(b) && (b = { items: b }), b } function go_complementswipeobject(a, b) { return is_boolean(b.ontouch) || (b.ontouch = !0), is_boolean(b.onmouse) || (b.onmouse = !1), is_object(b.options) || (b.options = {}), is_boolean(b.options.triggerontouchend) || (b.options.triggerontouchend = !1), b } function go_getmousewheelobject(a, b) { return is_function(b) && (b = b.call(a)), is_true(b) ? b = {}: is_number(b) ? b = { items: b }: is_undefined(b) && (b = !1), b } function go_complementmousewheelobject(a, b) { return b } function gn_getitemindex(a, b, c, d, e) { if (is_string(a) && (a = $(a, e)), is_object(a) && (a = $(a, e)), is_jquery(a) ? (a = e.children().index(a), is_boolean(c) || (c = !1)) : is_boolean(c) || (c = !0), is_number(a) || (a = 0), is_number(b) || (b = 0), c && (a += d.first), a += b, d.total > 0) { for (; a >= d.total;) a -= d.total; for (; 0 > a;) a += d.total } return a } function gn_getvisibleitemsprev(a, b, c) { for (var d = 0, e = 0, f = c; f >= 0; f--) { var g = a.eq(f); if (d += g.is(":visible") ? g[b.d.outerwidth](!0) : 0, d > b.maxdimension) return e; 0 == f && (f = a.length), e++ } } function gn_getvisibleitemsprevfilter(a, b, c) { return gn_getitemsprevfilter(a, b.items.filter, b.items.visibleconf.org, c) } function gn_getscrollitemsprevfilter(a, b, c, d) { return gn_getitemsprevfilter(a, b.items.filter, d, c) } function gn_getitemsprevfilter(a, b, c, d) { for (var e = 0, f = 0, g = d, h = a.length; g >= 0; g--) { if (f++, f == h) return f; var i = a.eq(g); if (i.is(b) && (e++, e == c)) return f; 0 == g && (g = h) } } function gn_getvisibleorg(a, b) { return b.items.visibleconf.org || a.children().slice(0, b.items.visible).filter(b.items.filter).length } function gn_getvisibleitemsnext(a, b, c) { for (var d = 0, e = 0, f = c, g = a.length - 1; g >= f; f++) { var h = a.eq(f); if (d += h.is(":visible") ? h[b.d.outerwidth](!0) : 0, d > b.maxdimension) return e; if (e++, e == g + 1) return e; f == g && (f = -1) } } function gn_getvisibleitemsnexttestcircular(a, b, c, d) { var e = gn_getvisibleitemsnext(a, b, c); return b.circular || c + e > d && (e = d - c), e } function gn_getvisibleitemsnextfilter(a, b, c) { return gn_getitemsnextfilter(a, b.items.filter, b.items.visibleconf.org, c, b.circular) } function gn_getscrollitemsnextfilter(a, b, c, d) { return gn_getitemsnextfilter(a, b.items.filter, d + 1, c, b.circular) - 1 } function gn_getitemsnextfilter(a, b, c, d) { for (var f = 0, g = 0, h = d, i = a.length - 1; i >= h; h++) { if (g++, g >= i) return g; var j = a.eq(h); if (j.is(b) && (f++, f == c)) return g; h == i && (h = -1) } } function gi_getcurrentitems(a, b) { return a.slice(0, b.items.visible) } function gi_getolditemsprev(a, b, c) { return a.slice(c, b.items.visibleconf.old + c) } function gi_getnewitemsprev(a, b) { return a.slice(0, b.items.visible) } function gi_getolditemsnext(a, b) { return a.slice(0, b.items.visibleconf.old) } function gi_getnewitemsnext(a, b, c) { return a.slice(c, b.items.visible + c) } function sz_storemargin(a, b, c) { b.usepadding && (is_string(c) || (c = "_cfs_origcssmargin"), a.each(function() { var a = $(this), d = parseint(a.css(b.d.marginright), 10); is_number(d) || (d = 0), a.data(c, d) })) } function sz_resetmargin(a, b, c) { if (b.usepadding) { var d = is_boolean(c) ? c: !1; is_number(c) || (c = 0), sz_storemargin(a, b, "_cfs_tempcssmargin"), a.each(function() { var a = $(this); a.css(b.d.marginright, d ? a.data("_cfs_tempcssmargin") : c + a.data("_cfs_origcssmargin")) }) } } function sz_storeorigcss(a) { a.each(function() { var a = $(this); a.data("_cfs_origcss", a.attr("style") || "") }) } function sz_restoreorigcss(a) { a.each(function() { var a = $(this); a.attr("style", a.data("_cfs_origcss") || "") }) } function sz_setresponsivesizes(a, b) { var d = (a.items.visible, a.items[a.d.width]), e = a[a.d.height], f = is_percentage(e); b.each(function() { var b = $(this), c = d - ms_getpaddingbordermargin(b, a, "width"); b[a.d.width](c), f && b[a.d.height](ms_getpercentage(c, e)) }) } function sz_setsizes(a, b) { var c = a.parent(), d = a.children(), e = gi_getcurrentitems(d, b), f = cf_mapwrappersizes(ms_getsizes(e, b, !0), b, !1); if (c.css(f), b.usepadding) { var g = b.padding, h = g[b.d[1]]; b.align && 0 > h && (h = 0); var i = e.last(); i.css(b.d.marginright, i.data("_cfs_origcssmargin") + h), a.css(b.d.top, g[b.d[0]]), a.css(b.d.left, g[b.d[3]]) } return a.css(b.d.width, f[b.d.width] + 2 * ms_gettotalsize(d, b, "width")), a.css(b.d.height, ms_getlargestsize(d, b, "height")), f } function ms_getsizes(a, b, c) { return [ms_gettotalsize(a, b, "width", c), ms_getlargestsize(a, b, "height", c)] } function ms_getlargestsize(a, b, c, d) { return is_boolean(d) || (d = !1), is_number(b[b.d[c]]) && d ? b[b.d[c]] : is_number(b.items[b.d[c]]) ? b.items[b.d[c]] : (c = c.tolowercase().indexof("width") > -1 ? "outerwidth": "outerheight", ms_gettruelargestsize(a, b, c)) } function ms_gettruelargestsize(a, b, c) { for (var d = 0, e = 0, f = a.length; f > e; e++) { var g = a.eq(e), h = g.is(":visible") ? g[b.d[c]](!0) : 0; h > d && (d = h) } return d } function ms_gettotalsize(a, b, c, d) { if (is_boolean(d) || (d = !1), is_number(b[b.d[c]]) && d) return b[b.d[c]]; if (is_number(b.items[b.d[c]])) return b.items[b.d[c]] * a.length; for (var e = c.tolowercase().indexof("width") > -1 ? "outerwidth": "outerheight", f = 0, g = 0, h = a.length; h > g; g++) { var i = a.eq(g); f += i.is(":visible") ? i[b.d[e]](!0) : 0 } return f } function ms_getparentsize(a, b, c) { var d = a.is(":visible"); d && a.hide(); var e = a.parent()[b.d[c]](); return d && a.show(), e } function ms_getmaxdimension(a, b) { return is_number(a[a.d.width]) ? a[a.d.width] : b } function ms_hasvariablesizes(a, b, c) { for (var d = !1, e = !1, f = 0, g = a.length; g > f; f++) { var h = a.eq(f), i = h.is(":visible") ? h[b.d[c]](!0) : 0; d === !1 ? d = i: d != i && (e = !0), 0 == d && (e = !0) } return e } function ms_getpaddingbordermargin(a, b, c) { return a[b.d["outer" + c]](!0) - a[b.d[c.tolowercase()]]() } function ms_getpercentage(a, b) { if (is_percentage(b)) { if (b = parseint(b.slice(0, -1), 10), !is_number(b)) return a; a *= b / 100 } return a } function cf_e(a, b, c, d, e) { return is_boolean(c) || (c = !0), is_boolean(d) || (d = !0), is_boolean(e) || (e = !1), c && (a = b.events.prefix + a), d && (a = a + "." + b.events.namespace), d && e && (a += b.serialnumber), a } function cf_c(a, b) { return is_string(b.classnames[a]) ? b.classnames[a] : a } function cf_mapwrappersizes(a, b, c) { is_boolean(c) || (c = !0); var d = b.usepadding && c ? b.padding: [0, 0, 0, 0], e = {}; return e[b.d.width] = a[0] + d[1] + d[3], e[b.d.height] = a[1] + d[0] + d[2], e } function cf_sortparams(a, b) { for (var c = [], d = 0, e = a.length; e > d; d++) for (var f = 0, g = b.length; g > f; f++) if (b[f].indexof(typeof a[d]) > -1 && is_undefined(c[f])) { c[f] = a[d]; break } return c } function cf_getpadding(a) { if (is_undefined(a)) return [0, 0, 0, 0]; if (is_number(a)) return [a, a, a, a]; if (is_string(a) && (a = a.split("px").join("").split("em").join("").split(" ")), !is_array(a)) return [0, 0, 0, 0]; for (var b = 0; 4 > b; b++) a[b] = parseint(a[b], 10); switch (a.length) { case 0: return [0, 0, 0, 0]; case 1: return [a[0], a[0], a[0], a[0]]; case 2: return [a[0], a[1], a[0], a[1]]; case 3: return [a[0], a[1], a[2], a[1]]; default: return [a[0], a[1], a[2], a[3]] } } function cf_getalignpadding(a, b) { var c = is_number(b[b.d.width]) ? math.ceil(b[b.d.width] - ms_gettotalsize(a, b, "width")) : 0; switch (b.align) { case "left": return [0, c]; case "right": return [c, 0]; case "center": default: return [math.ceil(c / 2), math.floor(c / 2)] } } function cf_getdimensions(a) { for (var b = [["width", "innerwidth", "outerwidth", "height", "innerheight", "outerheight", "left", "top", "marginright", 0, 1, 2, 3], ["height", "innerheight", "outerheight", "width", "innerwidth", "outerwidth", "top", "left", "marginbottom", 3, 2, 1, 0]], c = b[0].length, d = "right" == a.direction || "left" == a.direction ? 0 : 1, e = {}, f = 0; c > f; f++) e[b[0][f]] = b[d][f]; return e } function cf_getadjust(a, b, c, d) { var e = a; if (is_function(c)) e = c.call(d, e); else if (is_string(c)) { var f = c.split("+"), g = c.split("-"); if (g.length > f.length) var h = !0, i = g[0], j = g[1]; else var h = !1, i = f[0], j = f[1]; switch (i) { case "even": e = 1 == a % 2 ? a - 1 : a; break; case "odd": e = 0 == a % 2 ? a - 1 : a; break; default: e = a } j = parseint(j, 10), is_number(j) && (h && (j = -j), e += j) } return (!is_number(e) || 1 > e) && (e = 1), e } function cf_getitemsadjust(a, b, c, d) { return cf_getitemadjustminmax(cf_getadjust(a, b, c, d), b.items.visibleconf) } function cf_getitemadjustminmax(a, b) { return is_number(b.min) && b.min > a && (a = b.min), is_number(b.max) && a > b.max && (a = b.max), 1 > a && (a = 1), a } function cf_getsyncharr(a) { is_array(a) || (a = [[a]]), is_array(a[0]) || (a = [a]); for (var b = 0, c = a.length; c > b; b++) is_string(a[b][0]) && (a[b][0] = $(a[b][0])), is_boolean(a[b][1]) || (a[b][1] = !0), is_boolean(a[b][2]) || (a[b][2] = !0), is_number(a[b][3]) || (a[b][3] = 0); return a } function cf_getkeycode(a) { return "right" == a ? 39 : "left" == a ? 37 : "up" == a ? 38 : "down" == a ? 40 : -1 } function cf_setcookie(a, b, c) { if (a) { var d = b.triggerhandler(cf_e("currentposition", c)); $.fn.caroufredsel.cookie.set(a, d) } } function cf_getcookie(a) { var b = $.fn.caroufredsel.cookie.get(a); return "" == b ? 0 : b } function in_mapcss(a, b) { for (var c = {}, d = 0, e = b.length; e > d; d++) c[b[d]] = a.css(b[d]); return c } function in_complementitems(a, b, c, d) { return is_object(a.visibleconf) || (a.visibleconf = {}), is_object(a.sizesconf) || (a.sizesconf = {}), 0 == a.start && is_number(d) && (a.start = d), is_object(a.visible) ? (a.visibleconf.min = a.visible.min, a.visibleconf.max = a.visible.max, a.visible = !1) : is_string(a.visible) ? ("variable" == a.visible ? a.visibleconf.variable = !0 : a.visibleconf.adjust = a.visible, a.visible = !1) : is_function(a.visible) && (a.visibleconf.adjust = a.visible, a.visible = !1), is_string(a.filter) || (a.filter = c.filter(":hidden").length > 0 ? ":visible": "*"), a[b.d.width] || (b.responsive ? (debug(!0, "set a " + b.d.width + " for the items!"), a[b.d.width] = ms_gettruelargestsize(c, b, "outerwidth")) : a[b.d.width] = ms_hasvariablesizes(c, b, "outerwidth") ? "variable": c[b.d.outerwidth](!0)), a[b.d.height] || (a[b.d.height] = ms_hasvariablesizes(c, b, "outerheight") ? "variable": c[b.d.outerheight](!0)), a.sizesconf.width = a.width, a.sizesconf.height = a.height, a } function in_complementvisibleitems(a, b) { return "variable" == a.items[a.d.width] && (a.items.visibleconf.variable = !0), a.items.visibleconf.variable || (is_number(a[a.d.width]) ? a.items.visible = math.floor(a[a.d.width] / a.items[a.d.width]) : (a.items.visible = math.floor(b / a.items[a.d.width]), a[a.d.width] = a.items.visible * a.items[a.d.width], a.items.visibleconf.adjust || (a.align = !1)), ("infinity" == a.items.visible || 1 > a.items.visible) && (debug(!0, 'not a valid number of visible items: set to "variable".'), a.items.visibleconf.variable = !0)), a } function in_complementprimarysize(a, b, c) { return "auto" == a && (a = ms_gettruelargestsize(c, b, "outerwidth")), a } function in_complementsecondarysize(a, b, c) { return "auto" == a && (a = ms_gettruelargestsize(c, b, "outerheight")), a || (a = b.items[b.d.height]), a } function in_getalignpadding(a, b) { var c = cf_getalignpadding(gi_getcurrentitems(b, a), a); return a.padding[a.d[1]] = c[1], a.padding[a.d[3]] = c[0], a } function in_getresponsivevalues(a, b) { var d = cf_getitemadjustminmax(math.ceil(a[a.d.width] / a.items[a.d.width]), a.items.visibleconf); d > b.length && (d = b.length); var e = math.floor(a[a.d.width] / d); return a.items.visible = d, a.items[a.d.width] = e, a[a.d.width] = d * e, a } function bt_pauseonhoverconfig(a) { if (is_string(a)) var b = a.indexof("immediate") > -1 ? !0 : !1, c = a.indexof("resume") > -1 ? !0 : !1; else var b = c = !1; return [b, c] } function bt_mousesheelnumber(a) { return is_number(a) ? a: null } function is_null(a) { return null === a } function is_undefined(a) { return is_null(a) || a === void 0 || "" === a || "undefined" === a } function is_array(a) { return a instanceof array } function is_jquery(a) { return a instanceof jquery } function is_object(a) { return (a instanceof object || "object" == typeof a) && !is_null(a) && !is_jquery(a) && !is_array(a) && !is_function(a) } function is_number(a) { return (a instanceof number || "number" == typeof a) && !isnan(a) } function is_string(a) { return (a instanceof string || "string" == typeof a) && !is_undefined(a) && !is_true(a) && !is_false(a) } function is_function(a) { return a instanceof function || "function" == typeof a } function is_boolean(a) { return a instanceof boolean || "boolean" == typeof a || is_true(a) || is_false(a) } function is_true(a) { return a === !0 || "true" === a } function is_false(a) { return a === !1 || "false" === a } function is_percentage(a) { return is_string(a) && "%" == a.slice( - 1) } function gettime() { return (new date).gettime() } function deprecated(a, b) { debug(!0, a + " is deprecated, support for it will be removed. use " + b + " instead.") } function debug(a, b) { if (!is_undefined(window.console) && !is_undefined(window.console.log)) { if (is_object(a)) { var c = " (" + a.selector + ")"; a = a.debug } else var c = ""; if (!a) return ! 1; b = is_string(b) ? "caroufredsel" + c + ": " + b: ["caroufredsel" + c + ":", b], window.console.log(b) } return ! 1 } $.fn.caroufredsel || ($.fn.caroufredsel = $.fn.caroufredsel = function(options, configs) { if (0 == this.length) return debug(!0, 'no element found for "' + this.selector + '".'), this; if (this.length > 1) return this.each(function() { $(this).caroufredsel(options, configs) }); var $cfs = this, $tt0 = this[0], starting_position = !1; $cfs.data("_cfs_iscarousel") && (starting_position = $cfs.triggerhandler("_cfs_triggerevent", "currentposition"), $cfs.trigger("_cfs_triggerevent", ["destroy", !0])); var fn = {}; fn._init = function(a, b, c) { a = go_getobject($tt0, a), a.items = go_getitemsobject($tt0, a.items), a.scroll = go_getscrollobject($tt0, a.scroll), a.auto = go_getautoobject($tt0, a.auto), a.prev = go_getprevnextobject($tt0, a.prev), a.next = go_getprevnextobject($tt0, a.next), a.pagination = go_getpaginationobject($tt0, a.pagination), a.swipe = go_getswipeobject($tt0, a.swipe), a.mousewheel = go_getmousewheelobject($tt0, a.mousewheel), b && (opts_orig = $.extend(!0, {}, $.fn.caroufredsel.defaults, a)), opts = $.extend(!0, {}, $.fn.caroufredsel.defaults, a), opts.d = cf_getdimensions(opts), crsl.direction = "up" == opts.direction || "left" == opts.direction ? "next": "prev"; var d = $cfs.children(), e = ms_getparentsize($wrp, opts, "width"); if (is_true(opts.cookie) && (opts.cookie = "caroufredsel_cookie_" + conf.serialnumber), opts.maxdimension = ms_getmaxdimension(opts, e), opts.items = in_complementitems(opts.items, opts, d, c), opts[opts.d.width] = in_complementprimarysize(opts[opts.d.width], opts, d), opts[opts.d.height] = in_complementsecondarysize(opts[opts.d.height], opts, d), opts.responsive && (is_percentage(opts[opts.d.width]) || (opts[opts.d.width] = "100%")), is_percentage(opts[opts.d.width]) && (crsl.updateonwindowresize = !0, crsl.primarysizepercentage = opts[opts.d.width], opts[opts.d.width] = ms_getpercentage(e, crsl.primarysizepercentage), opts.items.visible || (opts.items.visibleconf.variable = !0)), opts.responsive ? (opts.usepadding = !1, opts.padding = [0, 0, 0, 0], opts.align = !1, opts.items.visibleconf.variable = !1) : (opts.items.visible || (opts = in_complementvisibleitems(opts, e)), opts[opts.d.width] || (!opts.items.visibleconf.variable && is_number(opts.items[opts.d.width]) && "*" == opts.items.filter ? (opts[opts.d.width] = opts.items.visible * opts.items[opts.d.width], opts.align = !1) : opts[opts.d.width] = "variable"), is_undefined(opts.align) && (opts.align = is_number(opts[opts.d.width]) ? "center": !1), opts.items.visibleconf.variable && (opts.items.visible = gn_getvisibleitemsnext(d, opts, 0))), "*" == opts.items.filter || opts.items.visibleconf.variable || (opts.items.visibleconf.org = opts.items.visible, opts.items.visible = gn_getvisibleitemsnextfilter(d, opts, 0)), opts.items.visible = cf_getitemsadjust(opts.items.visible, opts, opts.items.visibleconf.adjust, $tt0), opts.items.visibleconf.old = opts.items.visible, opts.responsive) opts.items.visibleconf.min || (opts.items.visibleconf.min = opts.items.visible), opts.items.visibleconf.max || (opts.items.visibleconf.max = opts.items.visible), opts = in_getresponsivevalues(opts, d, e); else switch (opts.padding = cf_getpadding(opts.padding), "top" == opts.align ? opts.align = "left": "bottom" == opts.align && (opts.align = "right"), opts.align) { case "center": case "left": case "right": "variable" != opts[opts.d.width] && (opts = in_getalignpadding(opts, d), opts.usepadding = !0); break; default: opts.align = !1, opts.usepadding = 0 == opts.padding[0] && 0 == opts.padding[1] && 0 == opts.padding[2] && 0 == opts.padding[3] ? !1 : !0 } is_number(opts.scroll.duration) || (opts.scroll.duration = 500), is_undefined(opts.scroll.items) && (opts.scroll.items = opts.responsive || opts.items.visibleconf.variable || "*" != opts.items.filter ? "visible": opts.items.visible), opts.auto = $.extend(!0, {}, opts.scroll, opts.auto), opts.prev = $.extend(!0, {}, opts.scroll, opts.prev), opts.next = $.extend(!0, {}, opts.scroll, opts.next), opts.pagination = $.extend(!0, {}, opts.scroll, opts.pagination), opts.auto = go_complementautoobject($tt0, opts.auto), opts.prev = go_complementprevnextobject($tt0, opts.prev), opts.next = go_complementprevnextobject($tt0, opts.next), opts.pagination = go_complementpaginationobject($tt0, opts.pagination), opts.swipe = go_complementswipeobject($tt0, opts.swipe), opts.mousewheel = go_complementmousewheelobject($tt0, opts.mousewheel), opts.synchronise && (opts.synchronise = cf_getsyncharr(opts.synchronise)), opts.auto.onpausestart && (opts.auto.ontimeoutstart = opts.auto.onpausestart, deprecated("auto.onpausestart", "auto.ontimeoutstart")), opts.auto.onpausepause && (opts.auto.ontimeoutpause = opts.auto.onpausepause, deprecated("auto.onpausepause", "auto.ontimeoutpause")), opts.auto.onpauseend && (opts.auto.ontimeoutend = opts.auto.onpauseend, deprecated("auto.onpauseend", "auto.ontimeoutend")), opts.auto.pauseduration && (opts.auto.timeoutduration = opts.auto.pauseduration, deprecated("auto.pauseduration", "auto.timeoutduration")) }, fn._build = function() { $cfs.data("_cfs_iscarousel", !0); var a = $cfs.children(), b = in_mapcss($cfs, ["textalign", "float", "position", "top", "right", "bottom", "left", "zindex", "width", "height", "margintop", "marginright", "marginbottom", "marginleft"]), c = "relative"; switch (b.position) { case "absolute": case "fixed": c = b.position } "parent" == conf.wrapper ? sz_storeorigcss($wrp) : $wrp.css(b), $wrp.css({ overflow: "hidden", position: c }), sz_storeorigcss($cfs), $cfs.data("_cfs_origcsszindex", b.zindex), $cfs.css({ textalign: "left", "float": "none", position: "absolute", top: 0, right: "auto", bottom: "auto", left: 0, margintop: 0, marginright: 0, marginbottom: 0, marginleft: 0 }), sz_storemargin(a, opts), sz_storeorigcss(a), opts.responsive && sz_setresponsivesizes(opts, a) }, fn._bind_events = function() { fn._unbind_events(), $cfs.bind(cf_e("stop", conf), function(a, b) { return a.stoppropagation(), crsl.isstopped || opts.auto.button && opts.auto.button.addclass(cf_c("stopped", conf)), crsl.isstopped = !0, opts.auto.play && (opts.auto.play = !1, $cfs.trigger(cf_e("pause", conf), b)), !0 }), $cfs.bind(cf_e("finish", conf), function(a) { return a.stoppropagation(), crsl.isscrolling && sc_stopscroll(scrl), !0 }), $cfs.bind(cf_e("pause", conf), function(a, b, c) { if (a.stoppropagation(), tmrs = sc_cleartimers(tmrs), b && crsl.isscrolling) { scrl.isstopped = !0; var d = gettime() - scrl.starttime; scrl.duration -= d, scrl.pre && (scrl.pre.duration -= d), scrl.post && (scrl.post.duration -= d), sc_stopscroll(scrl, !1) } if (crsl.ispaused || crsl.isscrolling || c && (tmrs.timepassed += gettime() - tmrs.starttime), crsl.ispaused || opts.auto.button && opts.auto.button.addclass(cf_c("paused", conf)), crsl.ispaused = !0, opts.auto.ontimeoutpause) { var e = opts.auto.timeoutduration - tmrs.timepassed, f = 100 - math.ceil(100 * e / opts.auto.timeoutduration); opts.auto.ontimeoutpause.call($tt0, f, e) } return ! 0 }), $cfs.bind(cf_e("play", conf), function(a, b, c, d) { a.stoppropagation(), tmrs = sc_cleartimers(tmrs); var e = [b, c, d], f = ["string", "number", "boolean"], g = cf_sortparams(e, f); if (b = g[0], c = g[1], d = g[2], "prev" != b && "next" != b && (b = crsl.direction), is_number(c) || (c = 0), is_boolean(d) || (d = !1), d && (crsl.isstopped = !1, opts.auto.play = !0), !opts.auto.play) return a.stopimmediatepropagation(), debug(conf, "carousel stopped: not scrolling."); crsl.ispaused && opts.auto.button && (opts.auto.button.removeclass(cf_c("stopped", conf)), opts.auto.button.removeclass(cf_c("paused", conf))), crsl.ispaused = !1, tmrs.starttime = gettime(); var h = opts.auto.timeoutduration + c; return dur2 = h - tmrs.timepassed, perc = 100 - math.ceil(100 * dur2 / h), opts.auto.progress && (tmrs.progress = setinterval(function() { var a = gettime() - tmrs.starttime + tmrs.timepassed, b = math.ceil(100 * a / h); opts.auto.progress.updater.call(opts.auto.progress.bar[0], b) }, opts.auto.progress.interval)), tmrs.auto = settimeout(function() { opts.auto.progress && opts.auto.progress.updater.call(opts.auto.progress.bar[0], 100), opts.auto.ontimeoutend && opts.auto.ontimeoutend.call($tt0, perc, dur2), crsl.isscrolling ? $cfs.trigger(cf_e("play", conf), b) : $cfs.trigger(cf_e(b, conf), opts.auto) }, dur2), opts.auto.ontimeoutstart && opts.auto.ontimeoutstart.call($tt0, perc, dur2), !0 }), $cfs.bind(cf_e("resume", conf), function(a) { return a.stoppropagation(), scrl.isstopped ? (scrl.isstopped = !1, crsl.ispaused = !1, crsl.isscrolling = !0, scrl.starttime = gettime(), sc_startscroll(scrl, conf)) : $cfs.trigger(cf_e("play", conf)), !0 }), $cfs.bind(cf_e("prev", conf) + " " + cf_e("next", conf), function(a, b, c, d, e) { if (a.stoppropagation(), crsl.isstopped || $cfs.is(":hidden")) return a.stopimmediatepropagation(), debug(conf, "carousel stopped or hidden: not scrolling."); var f = is_number(opts.items.minimum) ? opts.items.minimum: opts.items.visible + 1; if (f > itms.total) return a.stopimmediatepropagation(), debug(conf, "not enough items (" + itms.total + " total, " + f + " needed): not scrolling."); var g = [b, c, d, e], h = ["object", "number/string", "function", "boolean"], i = cf_sortparams(g, h); b = i[0], c = i[1], d = i[2], e = i[3]; var j = a.type.slice(conf.events.prefix.length); if (is_object(b) || (b = {}), is_function(d) && (b.onafter = d), is_boolean(e) && (b.queue = e), b = $.extend(!0, {}, opts[j], b), b.conditions && !b.conditions.call($tt0, j)) return a.stopimmediatepropagation(), debug(conf, 'callback "conditions" returned false.'); if (!is_number(c)) { if ("*" != opts.items.filter) c = "visible"; else for (var k = [c, b.items, opts[j].items], i = 0, l = k.length; l > i; i++) if (is_number(k[i]) || "page" == k[i] || "visible" == k[i]) { c = k[i]; break } switch (c) { case "page": return a.stopimmediatepropagation(), $cfs.triggerhandler(cf_e(j + "page", conf), [b, d]); case "visible": opts.items.visibleconf.variable || "*" != opts.items.filter || (c = opts.items.visible) } } if (scrl.isstopped) return $cfs.trigger(cf_e("resume", conf)), $cfs.trigger(cf_e("queue", conf), [j, [b, c, d]]), a.stopimmediatepropagation(), debug(conf, "carousel resumed scrolling."); if (b.duration > 0 && crsl.isscrolling) return b.queue && ("last" == b.queue && (queu = []), ("first" != b.queue || 0 == queu.length) && $cfs.trigger(cf_e("queue", conf), [j, [b, c, d]])), a.stopimmediatepropagation(), debug(conf, "carousel currently scrolling."); if (tmrs.timepassed = 0, $cfs.trigger(cf_e("slide_" + j, conf), [b, c]), opts.synchronise) for (var m = opts.synchronise, n = [b, c], o = 0, l = m.length; l > o; o++) { var p = j; m[o][2] || (p = "prev" == p ? "next": "prev"), m[o][1] || (n[0] = m[o][0].triggerhandler("_cfs_triggerevent", ["configuration", p])), n[1] = c + m[o][3], m[o][0].trigger("_cfs_triggerevent", ["slide_" + p, n]) } return ! 0 }), $cfs.bind(cf_e("slide_prev", conf), function(a, b, c) { a.stoppropagation(); var d = $cfs.children(); if (!opts.circular && 0 == itms.first) return opts.infinite && $cfs.trigger(cf_e("next", conf), itms.total - 1), a.stopimmediatepropagation(); if (sz_resetmargin(d, opts), !is_number(c)) { if (opts.items.visibleconf.variable) c = gn_getvisibleitemsprev(d, opts, itms.total - 1); else if ("*" != opts.items.filter) { var e = is_number(b.items) ? b.items: gn_getvisibleorg($cfs, opts); c = gn_getscrollitemsprevfilter(d, opts, itms.total - 1, e) } else c = opts.items.visible; c = cf_getadjust(c, opts, b.items, $tt0) } if (opts.circular || itms.total - c < itms.first && (c = itms.total - itms.first), opts.items.visibleconf.old = opts.items.visible, opts.items.visibleconf.variable) { var f = cf_getitemsadjust(gn_getvisibleitemsnext(d, opts, itms.total - c), opts, opts.items.visibleconf.adjust, $tt0); f >= opts.items.visible + c && itms.total > c && (c++, f = cf_getitemsadjust(gn_getvisibleitemsnext(d, opts, itms.total - c), opts, opts.items.visibleconf.adjust, $tt0)), opts.items.visible = f } else if ("*" != opts.items.filter) { var f = gn_getvisibleitemsnextfilter(d, opts, itms.total - c); opts.items.visible = cf_getitemsadjust(f, opts, opts.items.visibleconf.adjust, $tt0) } if (sz_resetmargin(d, opts, !0), 0 == c) return a.stopimmediatepropagation(), debug(conf, "0 items to scroll: not scrolling."); for (debug(conf, "scrolling " + c + " items backward."), itms.first += c; itms.first >= itms.total;) itms.first -= itms.total; opts.circular || (0 == itms.first && b.onend && b.onend.call($tt0, "prev"), opts.infinite || nv_enablenavi(opts, itms.first, conf)), $cfs.children().slice(itms.total - c, itms.total).prependto($cfs), itms.total < opts.items.visible + c && $cfs.children().slice(0, opts.items.visible + c - itms.total).clone(!0).appendto($cfs); var d = $cfs.children(), g = gi_getolditemsprev(d, opts, c), h = gi_getnewitemsprev(d, opts), i = d.eq(c - 1), j = g.last(), k = h.last(); sz_resetmargin(d, opts); var l = 0, m = 0; if (opts.align) { var n = cf_getalignpadding(h, opts); l = n[0], m = n[1] } var o = 0 > l ? opts.padding[opts.d[3]] : 0, p = !1, q = $(); if (c > opts.items.visible && (q = d.slice(opts.items.visibleconf.old, c), "directscroll" == b.fx)) { var r = opts.items[opts.d.width]; p = q, i = k, sc_hidehiddenitems(p), opts.items[opts.d.width] = "variable" } var s = !1, t = ms_gettotalsize(d.slice(0, c), opts, "width"), u = cf_mapwrappersizes(ms_getsizes(h, opts, !0), opts, !opts.usepadding), v = 0, w = {}, x = {}, y = {}, z = {}, a = {}, b = {}, c = {}, d = sc_getduration(b, opts, c, t); switch (b.fx) { case "cover": case "cover-fade": v = ms_gettotalsize(d.slice(0, opts.items.visible), opts, "width") } p && (opts.items[opts.d.width] = r), sz_resetmargin(d, opts, !0), m >= 0 && sz_resetmargin(j, opts, opts.padding[opts.d[1]]), l >= 0 && sz_resetmargin(i, opts, opts.padding[opts.d[3]]), opts.align && (opts.padding[opts.d[1]] = m, opts.padding[opts.d[3]] = l), b[opts.d.left] = -(t - o), c[opts.d.left] = -(v - o), x[opts.d.left] = u[opts.d.width]; var e = function() {}, f = function() {}, g = function() {}, h = function() {}, i = function() {}, j = function() {}, k = function() {}, l = function() {}, m = function() {}, n = function() {}, o = function() {}; switch (b.fx) { case "crossfade": case "cover": case "cover-fade": case "uncover": case "uncover-fade": s = $cfs.clone(!0).appendto($wrp) } switch (b.fx) { case "crossfade": case "uncover": case "uncover-fade": s.children().slice(0, c).remove(), s.children().slice(opts.items.visibleconf.old).remove(); break; case "cover": case "cover-fade": s.children().slice(opts.items.visible).remove(), s.css(c) } if ($cfs.css(b), scrl = sc_setscroll(d, b.easing, conf), w[opts.d.left] = opts.usepadding ? opts.padding[opts.d[3]] : 0, ("variable" == opts[opts.d.width] || "variable" == opts[opts.d.height]) && (e = function() { $wrp.css(u) }, f = function() { scrl.anims.push([$wrp, u]) }), opts.usepadding) { switch (k.not(i).length && (y[opts.d.marginright] = i.data("_cfs_origcssmargin"), 0 > l ? i.css(y) : (k = function() { i.css(y) }, l = function() { scrl.anims.push([i, y]) })), b.fx) { case "cover": case "cover-fade": s.children().eq(c - 1).css(y) } k.not(j).length && (z[opts.d.marginright] = j.data("_cfs_origcssmargin"), g = function() { j.css(z) }, h = function() { scrl.anims.push([j, z]) }), m >= 0 && (a[opts.d.marginright] = k.data("_cfs_origcssmargin") + opts.padding[opts.d[1]], i = function() { k.css(a) }, j = function() { scrl.anims.push([k, a]) }) } o = function() { $cfs.css(w) }; var p = opts.items.visible + c - itms.total; n = function() { if (p > 0 && ($cfs.children().slice(itms.total).remove(), g = $($cfs.children().slice(itms.total - (opts.items.visible - p)).get().concat($cfs.children().slice(0, p).get()))), sc_showhiddenitems(p), opts.usepadding) { var a = $cfs.children().eq(opts.items.visible + c - 1); a.css(opts.d.marginright, a.data("_cfs_origcssmargin")) } }; var q = sc_mapcallbackarguments(g, q, h, c, "prev", d, u); switch (m = function() { sc_afterscroll($cfs, s, b), crsl.isscrolling = !1, clbk.onafter = sc_firecallbacks($tt0, b, "onafter", q, clbk), queu = sc_firequeue($cfs, queu, conf), crsl.ispaused || $cfs.trigger(cf_e("play", conf)) }, crsl.isscrolling = !0, tmrs = sc_cleartimers(tmrs), clbk.onbefore = sc_firecallbacks($tt0, b, "onbefore", q, clbk), b.fx) { case "none": $cfs.css(w), e(), g(), i(), k(), o(), n(), m(); break; case "fade": scrl.anims.push([$cfs, { opacity: 0 }, function() { e(), g(), i(), k(), o(), n(), scrl = sc_setscroll(d, b.easing, conf), scrl.anims.push([$cfs, { opacity: 1 }, m]), sc_startscroll(scrl, conf) }]); break; case "crossfade": $cfs.css({ opacity: 0 }), scrl.anims.push([s, { opacity: 0 }]), scrl.anims.push([$cfs, { opacity: 1 }, m]), f(), g(), i(), k(), o(), n(); break; case "cover": scrl.anims.push([s, w, function() { g(), i(), k(), o(), n(), m() }]), f(); break; case "cover-fade": scrl.anims.push([$cfs, { opacity: 0 }]), scrl.anims.push([s, w, function() { g(), i(), k(), o(), n(), m() }]), f(); break; case "uncover": scrl.anims.push([s, x, m]), f(), g(), i(), k(), o(), n(); break; case "uncover-fade": $cfs.css({ opacity: 0 }), scrl.anims.push([$cfs, { opacity: 1 }]), scrl.anims.push([s, x, m]), f(), g(), i(), k(), o(), n(); break; default: scrl.anims.push([$cfs, w, function() { n(), m() }]), f(), h(), j(), l() } return sc_startscroll(scrl, conf), cf_setcookie(opts.cookie, $cfs, conf), $cfs.trigger(cf_e("updatepagestatus", conf), [!1, u]), !0 }), $cfs.bind(cf_e("slide_next", conf), function(a, b, c) { a.stoppropagation(); var d = $cfs.children(); if (!opts.circular && itms.first == opts.items.visible) return opts.infinite && $cfs.trigger(cf_e("prev", conf), itms.total - 1), a.stopimmediatepropagation(); if (sz_resetmargin(d, opts), !is_number(c)) { if ("*" != opts.items.filter) { var e = is_number(b.items) ? b.items: gn_getvisibleorg($cfs, opts); c = gn_getscrollitemsnextfilter(d, opts, 0, e) } else c = opts.items.visible; c = cf_getadjust(c, opts, b.items, $tt0) } var f = 0 == itms.first ? itms.total: itms.first; if (!opts.circular) { if (opts.items.visibleconf.variable) var g = gn_getvisibleitemsnext(d, opts, c), e = gn_getvisibleitemsprev(d, opts, f - 1); else var g = opts.items.visible, e = opts.items.visible; c + g > f && (c = f - e) } if (opts.items.visibleconf.old = opts.items.visible, opts.items.visibleconf.variable) { for (var g = cf_getitemsadjust(gn_getvisibleitemsnexttestcircular(d, opts, c, f), opts, opts.items.visibleconf.adjust, $tt0); opts.items.visible - c >= g && itms.total > c;) c++, g = cf_getitemsadjust(gn_getvisibleitemsnexttestcircular(d, opts, c, f), opts, opts.items.visibleconf.adjust, $tt0); opts.items.visible = g } else if ("*" != opts.items.filter) { var g = gn_getvisibleitemsnextfilter(d, opts, c); opts.items.visible = cf_getitemsadjust(g, opts, opts.items.visibleconf.adjust, $tt0) } if (sz_resetmargin(d, opts, !0), 0 == c) return a.stopimmediatepropagation(), debug(conf, "0 items to scroll: not scrolling."); for (debug(conf, "scrolling " + c + " items forward."), itms.first -= c; 0 > itms.first;) itms.first += itms.total; opts.circular || (itms.first == opts.items.visible && b.onend && b.onend.call($tt0, "next"), opts.infinite || nv_enablenavi(opts, itms.first, conf)), itms.total < opts.items.visible + c && $cfs.children().slice(0, opts.items.visible + c - itms.total).clone(!0).appendto($cfs); var d = $cfs.children(), h = gi_getolditemsnext(d, opts), i = gi_getnewitemsnext(d, opts, c), j = d.eq(c - 1), k = h.last(), l = i.last(); sz_resetmargin(d, opts); var m = 0, n = 0; if (opts.align) { var o = cf_getalignpadding(i, opts); m = o[0], n = o[1] } var p = !1, q = $(); if (c > opts.items.visibleconf.old && (q = d.slice(opts.items.visibleconf.old, c), "directscroll" == b.fx)) { var r = opts.items[opts.d.width]; p = q, j = k, sc_hidehiddenitems(p), opts.items[opts.d.width] = "variable" } var s = !1, t = ms_gettotalsize(d.slice(0, c), opts, "width"), u = cf_mapwrappersizes(ms_getsizes(i, opts, !0), opts, !opts.usepadding), v = 0, w = {}, x = {}, y = {}, z = {}, a = {}, b = sc_getduration(b, opts, c, t); switch (b.fx) { case "uncover": case "uncover-fade": v = ms_gettotalsize(d.slice(0, opts.items.visibleconf.old), opts, "width") } p && (opts.items[opts.d.width] = r), opts.align && 0 > opts.padding[opts.d[1]] && (opts.padding[opts.d[1]] = 0), sz_resetmargin(d, opts, !0), sz_resetmargin(k, opts, opts.padding[opts.d[1]]), opts.align && (opts.padding[opts.d[1]] = n, opts.padding[opts.d[3]] = m), a[opts.d.left] = opts.usepadding ? opts.padding[opts.d[3]] : 0; var c = function() {}, d = function() {}, e = function() {}, f = function() {}, g = function() {}, h = function() {}, i = function() {}, j = function() {}, k = function() {}; switch (b.fx) { case "crossfade": case "cover": case "cover-fade": case "uncover": case "uncover-fade": s = $cfs.clone(!0).appendto($wrp), s.children().slice(opts.items.visibleconf.old).remove() } switch (b.fx) { case "crossfade": case "cover": case "cover-fade": $cfs.css("zindex", 1), s.css("zindex", 0) } if (scrl = sc_setscroll(b, b.easing, conf), w[opts.d.left] = -t, x[opts.d.left] = -v, 0 > m && (w[opts.d.left] += m), ("variable" == opts[opts.d.width] || "variable" == opts[opts.d.height]) && (c = function() { $wrp.css(u) }, d = function() { scrl.anims.push([$wrp, u]) }), opts.usepadding) { var l = l.data("_cfs_origcssmargin"); n >= 0 && (l += opts.padding[opts.d[1]]), l.css(opts.d.marginright, l), j.not(k).length && (z[opts.d.marginright] = k.data("_cfs_origcssmargin")), e = function() { k.css(z) }, f = function() { scrl.anims.push([k, z]) }; var m = j.data("_cfs_origcssmargin"); m > 0 && (m += opts.padding[opts.d[3]]), y[opts.d.marginright] = m, g = function() { j.css(y) }, h = function() { scrl.anims.push([j, y]) } } k = function() { $cfs.css(a) }; var n = opts.items.visible + c - itms.total; j = function() { n > 0 && $cfs.children().slice(itms.total).remove(); var a = $cfs.children().slice(0, c).appendto($cfs).last(); if (n > 0 && (i = gi_getcurrentitems(d, opts)), sc_showhiddenitems(p), opts.usepadding) { if (itms.total < opts.items.visible + c) { var b = $cfs.children().eq(opts.items.visible - 1); b.css(opts.d.marginright, b.data("_cfs_origcssmargin") + opts.padding[opts.d[1]]) } a.css(opts.d.marginright, a.data("_cfs_origcssmargin")) } }; var o = sc_mapcallbackarguments(h, q, i, c, "next", b, u); switch (i = function() { $cfs.css("zindex", $cfs.data("_cfs_origcsszindex")), sc_afterscroll($cfs, s, b), crsl.isscrolling = !1, clbk.onafter = sc_firecallbacks($tt0, b, "onafter", o, clbk), queu = sc_firequeue($cfs, queu, conf), crsl.ispaused || $cfs.trigger(cf_e("play", conf)) }, crsl.isscrolling = !0, tmrs = sc_cleartimers(tmrs), clbk.onbefore = sc_firecallbacks($tt0, b, "onbefore", o, clbk), b.fx) { case "none": $cfs.css(w), c(), e(), g(), k(), j(), i(); break; case "fade": scrl.anims.push([$cfs, { opacity: 0 }, function() { c(), e(), g(), k(), j(), scrl = sc_setscroll(b, b.easing, conf), scrl.anims.push([$cfs, { opacity: 1 }, i]), sc_startscroll(scrl, conf) }]); break; case "crossfade": $cfs.css({ opacity: 0 }), scrl.anims.push([s, { opacity: 0 }]), scrl.anims.push([$cfs, { opacity: 1 }, i]), d(), e(), g(), k(), j(); break; case "cover": $cfs.css(opts.d.left, $wrp[opts.d.width]()), scrl.anims.push([$cfs, a, i]), d(), e(), g(), j(); break; case "cover-fade": $cfs.css(opts.d.left, $wrp[opts.d.width]()), scrl.anims.push([s, { opacity: 0 }]), scrl.anims.push([$cfs, a, i]), d(), e(), g(), j(); break; case "uncover": scrl.anims.push([s, x, i]), d(), e(), g(), k(), j(); break; case "uncover-fade": $cfs.css({ opacity: 0 }), scrl.anims.push([$cfs, { opacity: 1 }]), scrl.anims.push([s, x, i]), d(), e(), g(), k(), j(); break; default: scrl.anims.push([$cfs, w, function() { k(), j(), i() }]), d(), f(), h() } return sc_startscroll(scrl, conf), cf_setcookie(opts.cookie, $cfs, conf), $cfs.trigger(cf_e("updatepagestatus", conf), [!1, u]), !0 }), $cfs.bind(cf_e("slideto", conf), function(a, b, c, d, e, f, g) { a.stoppropagation(); var h = [b, c, d, e, f, g], i = ["string/number/object", "number", "boolean", "object", "string", "function"], j = cf_sortparams(h, i); return e = j[3], f = j[4], g = j[5], b = gn_getitemindex(j[0], j[1], j[2], itms, $cfs), 0 == b ? !1 : (is_object(e) || (e = !1), "prev" != f && "next" != f && (f = opts.circular ? itms.total / 2 >= b ? "next": "prev": 0 == itms.first || itms.first > b ? "next": "prev"), "prev" == f && (b = itms.total - b), $cfs.trigger(cf_e(f, conf), [e, b, g]), !0) }), $cfs.bind(cf_e("prevpage", conf), function(a, b, c) { a.stoppropagation(); var d = $cfs.triggerhandler(cf_e("currentpage", conf)); return $cfs.triggerhandler(cf_e("slidetopage", conf), [d - 1, b, "prev", c]) }), $cfs.bind(cf_e("nextpage", conf), function(a, b, c) { a.stoppropagation(); var d = $cfs.triggerhandler(cf_e("currentpage", conf)); return $cfs.triggerhandler(cf_e("slidetopage", conf), [d + 1, b, "next", c]) }), $cfs.bind(cf_e("slidetopage", conf), function(a, b, c, d, e) { a.stoppropagation(), is_number(b) || (b = $cfs.triggerhandler(cf_e("currentpage", conf))); var f = opts.pagination.items || opts.items.visible, g = math.ceil(itms.total / f) - 1; return 0 > b && (b = g), b > g && (b = 0), $cfs.triggerhandler(cf_e("slideto", conf), [b * f, 0, !0, c, d, e]) }), $cfs.bind(cf_e("jumptostart", conf), function(a, b) { if (a.stoppropagation(), b = b ? gn_getitemindex(b, 0, !0, itms, $cfs) : 0, b += itms.first, 0 != b) { if (itms.total > 0) for (; b > itms.total;) b -= itms.total; $cfs.prepend($cfs.children().slice(b, itms.total)) } return ! 0 }), $cfs.bind(cf_e("synchronise", conf), function(a, b) { if (a.stoppropagation(), b) b = cf_getsyncharr(b); else { if (!opts.synchronise) return debug(conf, "no carousel to synchronise."); b = opts.synchronise } for (var c = $cfs.triggerhandler(cf_e("currentposition", conf)), d = !0, e = 0, f = b.length; f > e; e++) b[e][0].triggerhandler(cf_e("slideto", conf), [c, b[e][3], !0]) || (d = !1); return d }), $cfs.bind(cf_e("queue", conf), function(a, b, c) { return a.stoppropagation(), is_function(b) ? b.call($tt0, queu) : is_array(b) ? queu = b: is_undefined(b) || queu.push([b, c]), queu }), $cfs.bind(cf_e("insertitem", conf), function(a, b, c, d, e) { a.stoppropagation(); var f = [b, c, d, e], g = ["string/object", "string/number/object", "boolean", "number"], h = cf_sortparams(f, g); if (b = h[0], c = h[1], d = h[2], e = h[3], is_object(b) && !is_jquery(b) ? b = $(b) : is_string(b) && (b = $(b)), !is_jquery(b) || 0 == b.length) return debug(conf, "not a valid object."); is_undefined(c) && (c = "end"), sz_storemargin(b, opts), sz_storeorigcss(b); var i = c, j = "before"; "end" == c ? d ? (0 == itms.first ? (c = itms.total - 1, j = "after") : (c = itms.first, itms.first += b.length), 0 > c && (c = 0)) : (c = itms.total - 1, j = "after") : c = gn_getitemindex(c, e, d, itms, $cfs); var k = $cfs.children().eq(c); return k.length ? k[j](b) : (debug(conf, "correct insert-position not found! appending item to the end."), $cfs.append(b)), "end" == i || d || itms.first > c && (itms.first += b.length), itms.total = $cfs.children().length, itms.first >= itms.total && (itms.first -= itms.total), $cfs.trigger(cf_e("updatesizes", conf)), $cfs.trigger(cf_e("linkanchors", conf)), !0 }), $cfs.bind(cf_e("removeitem", conf), function(a, b, c, d) { a.stoppropagation(); var e = [b, c, d], f = ["string/number/object", "boolean", "number"], g = cf_sortparams(e, f); if (b = g[0], c = g[1], d = g[2], b instanceof $ && b.length > 1) return i = $(), b.each(function() { var e = $cfs.trigger(cf_e("removeitem", conf), [$(this), c, d]); e && (i = i.add(e)) }), i; if (is_undefined(b) || "end" == b) i = $cfs.children().last(); else { b = gn_getitemindex(b, d, c, itms, $cfs); var i = $cfs.children().eq(b); i.length && itms.first > b && (itms.first -= i.length) } return i && i.length && (i.detach(), itms.total = $cfs.children().length, $cfs.trigger(cf_e("updatesizes", conf))), i }), $cfs.bind(cf_e("onbefore", conf) + " " + cf_e("onafter", conf), function(a, b) { a.stoppropagation(); var c = a.type.slice(conf.events.prefix.length); return is_array(b) && (clbk[c] = b), is_function(b) && clbk[c].push(b), clbk[c] }), $cfs.bind(cf_e("currentposition", conf), function(a, b) { if (a.stoppropagation(), 0 == itms.first) var c = 0; else var c = itms.total - itms.first; return is_function(b) && b.call($tt0, c), c }), $cfs.bind(cf_e("currentpage", conf), function(a, b) { a.stoppropagation(); var e, c = opts.pagination.items || opts.items.visible, d = math.ceil(itms.total / c - 1); return e = 0 == itms.first ? 0 : itms.first < itms.total % c ? 0 : itms.first != c || opts.circular ? math.round((itms.total - itms.first) / c) : d, 0 > e && (e = 0), e > d && (e = d), is_function(b) && b.call($tt0, e), e }), $cfs.bind(cf_e("currentvisible", conf), function(a, b) { a.stoppropagation(); var c = gi_getcurrentitems($cfs.children(), opts); return is_function(b) && b.call($tt0, c), c }), $cfs.bind(cf_e("slice", conf), function(a, b, c, d) { if (a.stoppropagation(), 0 == itms.total) return ! 1; var e = [b, c, d], f = ["number", "number", "function"], g = cf_sortparams(e, f); if (b = is_number(g[0]) ? g[0] : 0, c = is_number(g[1]) ? g[1] : itms.total, d = g[2], b += itms.first, c += itms.first, items.total > 0) { for (; b > itms.total;) b -= itms.total; for (; c > itms.total;) c -= itms.total; for (; 0 > b;) b += itms.total; for (; 0 > c;) c += itms.total } var i, h = $cfs.children(); return i = c > b ? h.slice(b, c) : $(h.slice(b, itms.total).get().concat(h.slice(0, c).get())), is_function(d) && d.call($tt0, i), i }), $cfs.bind(cf_e("ispaused", conf) + " " + cf_e("isstopped", conf) + " " + cf_e("isscrolling", conf), function(a, b) { a.stoppropagation(); var c = a.type.slice(conf.events.prefix.length), d = crsl[c]; return is_function(b) && b.call($tt0, d), d }), $cfs.bind(cf_e("configuration", conf), function(e, a, b, c) { e.stoppropagation(); var reinit = !1; if (is_function(a)) a.call($tt0, opts); else if (is_object(a)) opts_orig = $.extend(!0, {}, opts_orig, a), b !== !1 ? reinit = !0 : opts = $.extend(!0, {}, opts, a); else if (!is_undefined(a)) if (is_function(b)) { var val = eval("opts." + a); is_undefined(val) && (val = ""), b.call($tt0, val) } else { if (is_undefined(b)) return eval("opts." + a); "boolean" != typeof c && (c = !0), eval("opts_orig." + a + " = b"), c !== !1 ? reinit = !0 : eval("opts." + a + " = b") } if (reinit) { sz_resetmargin($cfs.children(), opts), fn._init(opts_orig), fn._bind_buttons(); var sz = sz_setsizes($cfs, opts); $cfs.trigger(cf_e("updatepagestatus", conf), [!0, sz]) } return opts }), $cfs.bind(cf_e("linkanchors", conf), function(a, b, c) { return a.stoppropagation(), is_undefined(b) ? b = $("body") : is_string(b) && (b = $(b)), is_jquery(b) && 0 != b.length ? (is_string(c) || (c = "a.caroufredsel"), b.find(c).each(function() { var a = this.hash || ""; a.length > 0 && -1 != $cfs.children().index($(a)) && $(this).unbind("click").click(function(b) { b.preventdefault(), $cfs.trigger(cf_e("slideto", conf), a) }) }), !0) : debug(conf, "not a valid object.") }), $cfs.bind(cf_e("updatepagestatus", conf), function(a, b) { if (a.stoppropagation(), opts.pagination.container) { var d = opts.pagination.items || opts.items.visible, e = math.ceil(itms.total / d); b && (opts.pagination.anchorbuilder && (opts.pagination.container.children().remove(), opts.pagination.container.each(function() { for (var a = 0; e > a; a++) { var b = $cfs.children().eq(gn_getitemindex(a * d, 0, !0, itms, $cfs)); $(this).append(opts.pagination.anchorbuilder.call(b[0], a + 1)) } })), opts.pagination.container.each(function() { $(this).children().unbind(opts.pagination.event).each(function(a) { $(this).bind(opts.pagination.event, function(b) { b.preventdefault(), $cfs.trigger(cf_e("slideto", conf), [a * d, -opts.pagination.deviation, !0, opts.pagination]) }) }) })); var f = $cfs.triggerhandler(cf_e("currentpage", conf)) + opts.pagination.deviation; return f >= e && (f = 0), 0 > f && (f = e - 1), opts.pagination.container.each(function() { $(this).children().removeclass(cf_c("selected", conf)).eq(f).addclass(cf_c("selected", conf)) }), !0 } }), $cfs.bind(cf_e("updatesizes", conf), function() { var b = opts.items.visible, c = $cfs.children(), d = ms_getparentsize($wrp, opts, "width"); if (itms.total = c.length, crsl.primarysizepercentage ? (opts.maxdimension = d, opts[opts.d.width] = ms_getpercentage(d, crsl.primarysizepercentage)) : opts.maxdimension = ms_getmaxdimension(opts, d), opts.responsive ? (opts.items.width = opts.items.sizesconf.width, opts.items.height = opts.items.sizesconf.height, opts = in_getresponsivevalues(opts, c, d), b = opts.items.visible, sz_setresponsivesizes(opts, c)) : opts.items.visibleconf.variable ? b = gn_getvisibleitemsnext(c, opts, 0) : "*" != opts.items.filter && (b = gn_getvisibleitemsnextfilter(c, opts, 0)), !opts.circular && 0 != itms.first && b > itms.first) { if (opts.items.visibleconf.variable) var e = gn_getvisibleitemsprev(c, opts, itms.first) - itms.first; else if ("*" != opts.items.filter) var e = gn_getvisibleitemsprevfilter(c, opts, itms.first) - itms.first; else var e = opts.items.visible - itms.first; debug(conf, "preventing non-circular: sliding " + e + " items backward."), $cfs.trigger(cf_e("prev", conf), e) } opts.items.visible = cf_getitemsadjust(b, opts, opts.items.visibleconf.adjust, $tt0), opts.items.visibleconf.old = opts.items.visible, opts = in_getalignpadding(opts, c); var f = sz_setsizes($cfs, opts); return $cfs.trigger(cf_e("updatepagestatus", conf), [!0, f]), nv_shownavi(opts, itms.total, conf), nv_enablenavi(opts, itms.first, conf), f }), $cfs.bind(cf_e("destroy", conf), function(a, b) { return a.stoppropagation(), tmrs = sc_cleartimers(tmrs), $cfs.data("_cfs_iscarousel", !1), $cfs.trigger(cf_e("finish", conf)), b && $cfs.trigger(cf_e("jumptostart", conf)), sz_restoreorigcss($cfs.children()), sz_restoreorigcss($cfs), fn._unbind_events(), fn._unbind_buttons(), "parent" == conf.wrapper ? sz_restoreorigcss($wrp) : $wrp.replacewith($cfs), !0 }), $cfs.bind(cf_e("debug", conf), function() { return debug(conf, "carousel width: " + opts.width), debug(conf, "carousel height: " + opts.height), debug(conf, "item widths: " + opts.items.width), debug(conf, "item heights: " + opts.items.height), debug(conf, "number of items visible: " + opts.items.visible), opts.auto.play && debug(conf, "number of items scrolled automatically: " + opts.auto.items), opts.prev.button && debug(conf, "number of items scrolled backward: " + opts.prev.items), opts.next.button && debug(conf, "number of items scrolled forward: " + opts.next.items), conf.debug }), $cfs.bind("_cfs_triggerevent", function(a, b, c) { return a.stoppropagation(), $cfs.triggerhandler(cf_e(b, conf), c) }) }, fn._unbind_events = function() { $cfs.unbind(cf_e("", conf)), $cfs.unbind(cf_e("", conf, !1)), $cfs.unbind("_cfs_triggerevent") }, fn._bind_buttons = function() { if (fn._unbind_buttons(), nv_shownavi(opts, itms.total, conf), nv_enablenavi(opts, itms.first, conf), opts.auto.pauseonhover) { var a = bt_pauseonhoverconfig(opts.auto.pauseonhover); $wrp.bind(cf_e("mouseenter", conf, !1), function() { $cfs.trigger(cf_e("pause", conf), a) }).bind(cf_e("mouseleave", conf, !1), function() { $cfs.trigger(cf_e("resume", conf)) }) } if (opts.auto.button && opts.auto.button.bind(cf_e(opts.auto.event, conf, !1), function(a) { a.preventdefault(); var b = !1, c = null; crsl.ispaused ? b = "play": opts.auto.pauseonevent && (b = "pause", c = bt_pauseonhoverconfig(opts.auto.pauseonevent)), b && $cfs.trigger(cf_e(b, conf), c) }), opts.prev.button && (opts.prev.button.bind(cf_e(opts.prev.event, conf, !1), function(a) { a.preventdefault(), $cfs.trigger(cf_e("prev", conf)) }), opts.prev.pauseonhover)) { var a = bt_pauseonhoverconfig(opts.prev.pauseonhover); opts.prev.button.bind(cf_e("mouseenter", conf, !1), function() { $cfs.trigger(cf_e("pause", conf), a) }).bind(cf_e("mouseleave", conf, !1), function() { $cfs.trigger(cf_e("resume", conf)) }) } if (opts.next.button && (opts.next.button.bind(cf_e(opts.next.event, conf, !1), function(a) { a.preventdefault(), $cfs.trigger(cf_e("next", conf)) }), opts.next.pauseonhover)) { var a = bt_pauseonhoverconfig(opts.next.pauseonhover); opts.next.button.bind(cf_e("mouseenter", conf, !1), function() { $cfs.trigger(cf_e("pause", conf), a) }).bind(cf_e("mouseleave", conf, !1), function() { $cfs.trigger(cf_e("resume", conf)) }) } if (opts.pagination.container && opts.pagination.pauseonhover) { var a = bt_pauseonhoverconfig(opts.pagination.pauseonhover); opts.pagination.container.bind(cf_e("mouseenter", conf, !1), function() { $cfs.trigger(cf_e("pause", conf), a) }).bind(cf_e("mouseleave", conf, !1), function() { $cfs.trigger(cf_e("resume", conf)) }) } if ((opts.prev.key || opts.next.key) && $(document).bind(cf_e("keyup", conf, !1, !0, !0), function(a) { var b = a.keycode; b == opts.next.key && (a.preventdefault(), $cfs.trigger(cf_e("next", conf))), b == opts.prev.key && (a.preventdefault(), $cfs.trigger(cf_e("prev", conf))) }), opts.pagination.keys && $(document).bind(cf_e("keyup", conf, !1, !0, !0), function(a) { var b = a.keycode; b >= 49 && 58 > b && (b = (b - 49) * opts.items.visible, itms.total >= b && (a.preventdefault(), $cfs.trigger(cf_e("slideto", conf), [b, 0, !0, opts.pagination]))) }), $.fn.swipe) { var b = "ontouchstart" in window; if (b && opts.swipe.ontouch || !b && opts.swipe.onmouse) { var c = $.extend(!0, {}, opts.prev, opts.swipe), d = $.extend(!0, {}, opts.next, opts.swipe), e = function() { $cfs.trigger(cf_e("prev", conf), [c]) }, f = function() { $cfs.trigger(cf_e("next", conf), [d]) }; switch (opts.direction) { case "up": case "down": opts.swipe.options.swipeup = f, opts.swipe.options.swipedown = e; break; default: opts.swipe.options.swipeleft = f, opts.swipe.options.swiperight = e } crsl.swipe && $cfs.swipe("destroy"), $wrp.swipe(opts.swipe.options), $wrp.css("cursor", "move"), crsl.swipe = !0 } } if ($.fn.mousewheel && opts.mousewheel) { var g = $.extend(!0, {}, opts.prev, opts.mousewheel), h = $.extend(!0, {}, opts.next, opts.mousewheel); crsl.mousewheel && $wrp.unbind(cf_e("mousewheel", conf, !1)), $wrp.bind(cf_e("mousewheel", conf, !1), function(a, b) { a.preventdefault(), b > 0 ? $cfs.trigger(cf_e("prev", conf), [g]) : $cfs.trigger(cf_e("next", conf), [h]) }), crsl.mousewheel = !0 } if (opts.auto.play && $cfs.trigger(cf_e("play", conf), opts.auto.delay), crsl.updateonwindowresize) { var i = function() { $cfs.trigger(cf_e("finish", conf)), opts.auto.pauseonresize && !crsl.ispaused && $cfs.trigger(cf_e("play", conf)), sz_resetmargin($cfs.children(), opts), $cfs.trigger(cf_e("updatesizes", conf)) }, j = $(window), k = null; if ($.debounce && "debounce" == conf.onwindowresize) k = $.debounce(200, i); else if ($.throttle && "throttle" == conf.onwindowresize) k = $.throttle(300, i); else { var l = 0, m = 0; k = function() { var a = j.width(), b = j.height(); (a != l || b != m) && (i(), l = a, m = b) } } j.bind(cf_e("resize", conf, !1, !0, !0), k) } }, fn._unbind_buttons = function() { var b = (cf_e("", conf), cf_e("", conf, !1)); ns3 = cf_e("", conf, !1, !0, !0), $(document).unbind(ns3), $(window).unbind(ns3), $wrp.unbind(b), opts.auto.button && opts.auto.button.unbind(b), opts.prev.button && opts.prev.button.unbind(b), opts.next.button && opts.next.button.unbind(b), opts.pagination.container && (opts.pagination.container.unbind(b), opts.pagination.anchorbuilder && opts.pagination.container.children().remove()), crsl.swipe && ($cfs.swipe("destroy"), $wrp.css("cursor", "default"), crsl.swipe = !1), crsl.mousewheel && (crsl.mousewheel = !1), nv_shownavi(opts, "hide", conf), nv_enablenavi(opts, "removeclass", conf) }, is_boolean(configs) && (configs = { debug: configs }); var crsl = { direction: "next", ispaused: !0, isscrolling: !1, isstopped: !1, mousewheel: !1, swipe: !1 }, itms = { total: $cfs.children().length, first: 0 }, tmrs = { auto: null, progress: null, starttime: gettime(), timepassed: 0 }, scrl = { isstopped: !1, duration: 0, starttime: 0, easing: "", anims: [] }, clbk = { onbefore: [], onafter: [] }, queu = [], conf = $.extend(!0, {}, $.fn.caroufredsel.configs, configs), opts = {}, opts_orig = $.extend(!0, {}, options), $wrp = "parent" == conf.wrapper ? $cfs.parent() : $cfs.wrap("<" + conf.wrapper.element + ' class="' + conf.wrapper.classname + '" />').parent(); if (conf.selector = $cfs.selector, conf.serialnumber = $.fn.caroufredsel.serialnumber++, conf.transition = conf.transition && $.fn.transition ? "transition": "animate", fn._init(opts_orig, !0, starting_position), fn._build(), fn._bind_events(), fn._bind_buttons(), is_array(opts.items.start)) var start_arr = opts.items.start; else { var start_arr = []; 0 != opts.items.start && start_arr.push(opts.items.start) } if (opts.cookie && start_arr.unshift(parseint(cf_getcookie(opts.cookie), 10)), start_arr.length > 0) for (var a = 0, l = start_arr.length; l > a; a++) { var s = start_arr[a]; if (0 != s) { if (s === !0) { if (s = window.location.hash, 1 > s.length) continue } else "random" === s && (s = math.floor(math.random() * itms.total)); if ($cfs.triggerhandler(cf_e("slideto", conf), [s, 0, !0, { fx: "none" }])) break } } var siz = sz_setsizes($cfs, opts), itm = gi_getcurrentitems($cfs.children(), opts); return opts.oncreate && opts.oncreate.call($tt0, { width: siz.width, height: siz.height, items: itm }), $cfs.trigger(cf_e("updatepagestatus", conf), [!0, siz]), $cfs.trigger(cf_e("linkanchors", conf)), conf.debug && $cfs.trigger(cf_e("debug", conf)), $cfs }, $.fn.caroufredsel.serialnumber = 1, $.fn.caroufredsel.defaults = { synchronise: !1, infinite: !0, circular: !0, responsive: !1, direction: "left", items: { start: 0 }, scroll: { easing: "swing", duration: 500, pauseonhover: !1, event: "click", queue: !1 } }, $.fn.caroufredsel.configs = { debug: !1, transition: !1, onwindowresize: "throttle", events: { prefix: "", namespace: "cfs" }, wrapper: { element: "div", classname: "caroufredsel_wrapper" }, classnames: {} }, $.fn.caroufredsel.pageanchorbuilder = function(a) { return '' + a + "" }, $.fn.caroufredsel.progressbarupdater = function(a) { $(this).css("width", a + "%") }, $.fn.caroufredsel.cookie = { get: function(a) { a += "="; for (var b = document.cookie.split(";"), c = 0, d = b.length; d > c; c++) { for (var e = b[c]; " " == e.charat(0);) e = e.slice(1); if (0 == e.indexof(a)) return e.slice(a.length) } return 0 }, set: function(a, b, c) { var d = ""; if (c) { var e = new date; e.settime(e.gettime() + 1e3 * 60 * 60 * 24 * c), d = "; expires=" + e.togmtstring() } document.cookie = a + "=" + b + d + "; path=/" }, remove: function(a) { $.fn.caroufredsel.cookie.set(a, "", -1) } }, $.extend($.easing, { quadratic: function(a) { var b = a * a; return a * ( - b * a + 4 * b - 6 * a + 4) }, cubic: function(a) { return a * (4 * a * a - 9 * a + 6) }, elastic: function(a) { var b = a * a; return a * (33 * b * b - 106 * b * a + 126 * b - 67 * a + 15) } })) })(jquery);