/* * 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);