Advertisement
Guest User

Untitled

a guest
Mar 26th, 2018
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2. (function($$jscomp$0) {
  3.   /**
  4.    * @param {!Function} actual
  5.    * @param {string} method
  6.    * @param {!Element} data
  7.    * @return {?}
  8.    */
  9.   function sc_setScroll$jscomp$0(actual, method, data) {
  10.     if (data.transition == "transition") {
  11.       if (method == "swing") {
  12.         /** @type {string} */
  13.         method = "ease";
  14.       }
  15.     }
  16.     return {
  17.       anims : [],
  18.       duration : actual,
  19.       orgDuration : actual,
  20.       easing : method,
  21.       startTime : getTime$jscomp$0()
  22.     };
  23.   }
  24.   /**
  25.    * @param {!Object} data
  26.    * @param {!Element} state
  27.    * @return {undefined}
  28.    */
  29.   function sc_startScroll$jscomp$0(data, state) {
  30.     /** @type {number} */
  31.     var i = 0;
  32.     var num_splits = data.anims.length;
  33.     for (; i < num_splits; i++) {
  34.       var pending = data.anims[i];
  35.       if (!pending) {
  36.         continue;
  37.       }
  38.       pending[0][state.transition](pending[1], data.duration, data.easing, pending[2]);
  39.     }
  40.   }
  41.   /**
  42.    * @param {!Object} data
  43.    * @param {boolean} colors
  44.    * @return {undefined}
  45.    */
  46.   function sc_stopScroll$jscomp$0(data, colors) {
  47.     if (!is_boolean$jscomp$0(colors)) {
  48.       /** @type {boolean} */
  49.       colors = true;
  50.     }
  51.     if (is_object$jscomp$0(data.pre)) {
  52.       sc_stopScroll$jscomp$0(data.pre, colors);
  53.     }
  54.     /** @type {number} */
  55.     var i = 0;
  56.     var l = data.anims.length;
  57.     for (; i < l; i++) {
  58.       var elem = data.anims[i];
  59.       elem[0].stop(true);
  60.       if (colors) {
  61.         elem[0].css(elem[1]);
  62.         if (is_function$jscomp$0(elem[2])) {
  63.           elem[2]();
  64.         }
  65.       }
  66.     }
  67.     if (is_object$jscomp$0(data.post)) {
  68.       sc_stopScroll$jscomp$0(data.post, colors);
  69.     }
  70.   }
  71.   /**
  72.    * @param {!Object} g
  73.    * @param {boolean} b
  74.    * @param {!Object} options
  75.    * @return {undefined}
  76.    */
  77.   function sc_afterScroll$jscomp$0(g, b, options) {
  78.     if (b) {
  79.       b.remove();
  80.     }
  81.     switch(options.fx) {
  82.       case "fade":
  83.       case "crossfade":
  84.       case "cover-fade":
  85.       case "uncover-fade":
  86.         g.css("filter", "");
  87.         g.css("opacity", 1);
  88.         break;
  89.     }
  90.   }
  91.   /**
  92.    * @param {?} tile
  93.    * @param {!Object} source
  94.    * @param {string} e
  95.    * @param {?} name
  96.    * @param {!Object} options
  97.    * @return {?}
  98.    */
  99.   function sc_fireCallbacks$jscomp$0(tile, source, e, name, options) {
  100.     if (source[e]) {
  101.       source[e].call(tile, name);
  102.     }
  103.     if (options[e].length) {
  104.       /** @type {number} */
  105.       var i = 0;
  106.       var choicesQuantity = options[e].length;
  107.       for (; i < choicesQuantity; i++) {
  108.         options[e][i].call(tile, name);
  109.       }
  110.     }
  111.     return [];
  112.   }
  113.   /**
  114.    * @param {!Object} o
  115.    * @param {!Array} errors
  116.    * @param {!Object} opts
  117.    * @return {?}
  118.    */
  119.   function sc_fireQueue$jscomp$0(o, errors, opts) {
  120.     if (errors.length) {
  121.       o.trigger(cf_e$jscomp$0(errors[0][0], opts), errors[0][1]);
  122.       errors.shift();
  123.     }
  124.     return errors;
  125.   }
  126.   /**
  127.    * @param {string} value
  128.    * @return {undefined}
  129.    */
  130.   function sc_hideHiddenItems$jscomp$0(value) {
  131.     value.each(function() {
  132.       var a = $$jscomp$0(this);
  133.       a.data("_cfs_isHidden", a.is(":hidden")).hide();
  134.     });
  135.   }
  136.   /**
  137.    * @param {string} value
  138.    * @return {undefined}
  139.    */
  140.   function sc_showHiddenItems$jscomp$0(value) {
  141.     if (value) {
  142.       value.each(function() {
  143.         var a = $$jscomp$0(this);
  144.         if (!a.data("_cfs_isHidden")) {
  145.           a.show();
  146.         }
  147.       });
  148.     }
  149.   }
  150.   /**
  151.    * @param {!Object} context
  152.    * @return {?}
  153.    */
  154.   function sc_clearTimers$jscomp$0(context) {
  155.     if (context.auto) {
  156.       clearTimeout(context.auto);
  157.     }
  158.     if (context.progress) {
  159.       clearInterval(context.progress);
  160.     }
  161.     return context;
  162.   }
  163.   /**
  164.    * @param {!Object} o
  165.    * @param {?} e
  166.    * @param {boolean} item
  167.    * @param {string} n
  168.    * @param {string} d
  169.    * @param {!Function} options
  170.    * @param {!Object} data
  171.    * @return {?}
  172.    */
  173.   function sc_mapCallbackArguments$jscomp$0(o, e, item, n, d, options, data) {
  174.     return {
  175.       "width" : data.width,
  176.       "height" : data.height,
  177.       "items" : {
  178.         "old" : o,
  179.         "skipped" : e,
  180.         "visible" : item
  181.       },
  182.       "scroll" : {
  183.         "items" : n,
  184.         "direction" : d,
  185.         "duration" : options
  186.       }
  187.     };
  188.   }
  189.   /**
  190.    * @param {!Object} options
  191.    * @param {!Object} o
  192.    * @param {number} c
  193.    * @param {undefined} t
  194.    * @return {?}
  195.    */
  196.   function sc_getDuration$jscomp$0(options, o, c, t) {
  197.     var s = options.duration;
  198.     if (options.fx == "none") {
  199.       return 0;
  200.     }
  201.     if (s == "auto") {
  202.       /** @type {number} */
  203.       s = o.scroll.duration / o.scroll.items * c;
  204.     } else {
  205.       if (s < 10) {
  206.         /** @type {number} */
  207.         s = t / s;
  208.       }
  209.     }
  210.     if (s < 1) {
  211.       return 0;
  212.     }
  213.     if (options.fx == "fade") {
  214.       /** @type {number} */
  215.       s = s / 2;
  216.     }
  217.     return Math.round(s);
  218.   }
  219.   /**
  220.    * @param {!Object} data
  221.    * @param {string} options
  222.    * @param {!Function} e
  223.    * @return {undefined}
  224.    */
  225.   function nv_showNavi$jscomp$0(data, options, e) {
  226.     var a = is_number$jscomp$0(data.items.minimum) ? data.items.minimum : data.items.visible + 1;
  227.     if (options == "show" || options == "hide") {
  228.       /** @type {string} */
  229.       var name = options;
  230.     } else {
  231.       if (a > options) {
  232.         debug$jscomp$0(e, "Not enough items (" + options + " total, " + a + " needed): Hiding navigation.");
  233.         /** @type {string} */
  234.         name = "hide";
  235.       } else {
  236.         /** @type {string} */
  237.         name = "show";
  238.       }
  239.     }
  240.     /** @type {string} */
  241.     var method = name == "show" ? "removeClass" : "addClass";
  242.     var value = cf_c$jscomp$0("hidden", e);
  243.     if (data.auto.button) {
  244.       data.auto.button[name]()[method](value);
  245.     }
  246.     if (data.prev.button) {
  247.       data.prev.button[name]()[method](value);
  248.     }
  249.     if (data.next.button) {
  250.       data.next.button[name]()[method](value);
  251.     }
  252.     if (data.pagination.container) {
  253.       data.pagination.container[name]()[method](value);
  254.     }
  255.   }
  256.   /**
  257.    * @param {!Object} settings
  258.    * @param {boolean} event
  259.    * @param {!Function} obj
  260.    * @return {undefined}
  261.    */
  262.   function nv_enableNavi$jscomp$0(settings, event, obj) {
  263.     if (settings.circular || settings.infinite) {
  264.       return;
  265.     }
  266.     var state = event == "removeClass" || event == "addClass" ? event : false;
  267.     var val = cf_c$jscomp$0("disabled", obj);
  268.     if (settings.auto.button && state) {
  269.       settings.auto.button[state](val);
  270.     }
  271.     if (settings.prev.button) {
  272.       /** @type {string} */
  273.       var method = state || event == 0 ? "addClass" : "removeClass";
  274.       settings.prev.button[method](val);
  275.     }
  276.     if (settings.next.button) {
  277.       /** @type {string} */
  278.       method = state || event == settings.items.visible ? "addClass" : "removeClass";
  279.       settings.next.button[method](val);
  280.     }
  281.   }
  282.   /**
  283.    * @param {?} obj
  284.    * @param {!Object} data
  285.    * @return {?}
  286.    */
  287.   function go_getObject$jscomp$0(obj, data) {
  288.     if (is_function$jscomp$0(data)) {
  289.       data = data.call(obj);
  290.     } else {
  291.       if (is_undefined$jscomp$0(data)) {
  292.         data = {};
  293.       }
  294.     }
  295.     return data;
  296.   }
  297.   /**
  298.    * @param {?} re
  299.    * @param {string} s
  300.    * @return {?}
  301.    */
  302.   function go_getItemsObject$jscomp$0(re, s) {
  303.     s = go_getObject$jscomp$0(re, s);
  304.     if (is_number$jscomp$0(s)) {
  305.       s = {
  306.         "visible" : s
  307.       };
  308.     } else {
  309.       if (s == "variable") {
  310.         s = {
  311.           "visible" : s,
  312.           "width" : s,
  313.           "height" : s
  314.         };
  315.       } else {
  316.         if (!is_object$jscomp$0(s)) {
  317.           s = {};
  318.         }
  319.       }
  320.     }
  321.     return s;
  322.   }
  323.   /**
  324.    * @param {?} datasource
  325.    * @param {number} options
  326.    * @return {?}
  327.    */
  328.   function go_getScrollObject$jscomp$0(datasource, options) {
  329.     options = go_getObject$jscomp$0(datasource, options);
  330.     if (is_number$jscomp$0(options)) {
  331.       if (options <= 50) {
  332.         options = {
  333.           "items" : options
  334.         };
  335.       } else {
  336.         options = {
  337.           "duration" : options
  338.         };
  339.       }
  340.     } else {
  341.       if (is_string$jscomp$0(options)) {
  342.         options = {
  343.           "easing" : options
  344.         };
  345.       } else {
  346.         if (!is_object$jscomp$0(options)) {
  347.           options = {};
  348.         }
  349.       }
  350.     }
  351.     return options;
  352.   }
  353.   /**
  354.    * @param {?} fields
  355.    * @param {string} data
  356.    * @return {?}
  357.    */
  358.   function go_getNaviObject$jscomp$0(fields, data) {
  359.     data = go_getObject$jscomp$0(fields, data);
  360.     if (is_string$jscomp$0(data)) {
  361.       var fetchedData = cf_getKeyCode$jscomp$0(data);
  362.       if (fetchedData == -1) {
  363.         data = $$jscomp$0(data);
  364.       } else {
  365.         data = fetchedData;
  366.       }
  367.     }
  368.     return data;
  369.   }
  370.   /**
  371.    * @param {?} a
  372.    * @param {boolean} b
  373.    * @return {?}
  374.    */
  375.   function go_getAutoObject$jscomp$0(a, b) {
  376.     b = go_getNaviObject$jscomp$0(a, b);
  377.     if (is_jquery$jscomp$0(b)) {
  378.       b = {
  379.         "button" : b
  380.       };
  381.     } else {
  382.       if (is_boolean$jscomp$0(b)) {
  383.         b = {
  384.           "play" : b
  385.         };
  386.       } else {
  387.         if (is_number$jscomp$0(b)) {
  388.           b = {
  389.             "timeoutDuration" : b
  390.           };
  391.         }
  392.       }
  393.     }
  394.     if (b.progress) {
  395.       if (is_string$jscomp$0(b.progress) || is_jquery$jscomp$0(b.progress)) {
  396.         b.progress = {
  397.           "bar" : b.progress
  398.         };
  399.       }
  400.     }
  401.     return b;
  402.   }
  403.   /**
  404.    * @param {?} editor
  405.    * @param {!Object} data
  406.    * @return {?}
  407.    */
  408.   function go_complementAutoObject$jscomp$0(editor, data) {
  409.     if (is_function$jscomp$0(data.button)) {
  410.       data.button = data.button.call(editor);
  411.     }
  412.     if (is_string$jscomp$0(data.button)) {
  413.       data.button = $$jscomp$0(data.button);
  414.     }
  415.     if (!is_boolean$jscomp$0(data.play)) {
  416.       /** @type {boolean} */
  417.       data.play = true;
  418.     }
  419.     if (!is_number$jscomp$0(data.delay)) {
  420.       /** @type {number} */
  421.       data.delay = 0;
  422.     }
  423.     if (is_undefined$jscomp$0(data.pauseOnEvent)) {
  424.       /** @type {boolean} */
  425.       data.pauseOnEvent = true;
  426.     }
  427.     if (!is_boolean$jscomp$0(data.pauseOnResize)) {
  428.       /** @type {boolean} */
  429.       data.pauseOnResize = true;
  430.     }
  431.     if (!is_number$jscomp$0(data.timeoutDuration)) {
  432.       /** @type {number} */
  433.       data.timeoutDuration = data.duration < 10 ? 2500 : data.duration * 5;
  434.     }
  435.     if (data.progress) {
  436.       if (is_function$jscomp$0(data.progress.bar)) {
  437.         data.progress.bar = data.progress.bar.call(editor);
  438.       }
  439.       if (is_string$jscomp$0(data.progress.bar)) {
  440.         data.progress.bar = $$jscomp$0(data.progress.bar);
  441.       }
  442.       if (data.progress.bar) {
  443.         if (!is_function$jscomp$0(data.progress.updater)) {
  444.           /** @type {function(string): undefined} */
  445.           data.progress.updater = $$jscomp$0.fn.carouFredSel.progressbarUpdater;
  446.         }
  447.         if (!is_number$jscomp$0(data.progress.interval)) {
  448.           /** @type {number} */
  449.           data.progress.interval = 50;
  450.         }
  451.       } else {
  452.         /** @type {boolean} */
  453.         data.progress = false;
  454.       }
  455.     }
  456.     return data;
  457.   }
  458.   /**
  459.    * @param {?} schema
  460.    * @param {number} val
  461.    * @return {?}
  462.    */
  463.   function go_getPrevNextObject$jscomp$0(schema, val) {
  464.     val = go_getNaviObject$jscomp$0(schema, val);
  465.     if (is_jquery$jscomp$0(val)) {
  466.       val = {
  467.         "button" : val
  468.       };
  469.     } else {
  470.       if (is_number$jscomp$0(val)) {
  471.         val = {
  472.           "key" : val
  473.         };
  474.       }
  475.     }
  476.     return val;
  477.   }
  478.   /**
  479.    * @param {?} action
  480.    * @param {!Object} data
  481.    * @return {?}
  482.    */
  483.   function go_complementPrevNextObject$jscomp$0(action, data) {
  484.     if (is_function$jscomp$0(data.button)) {
  485.       data.button = data.button.call(action);
  486.     }
  487.     if (is_string$jscomp$0(data.button)) {
  488.       data.button = $$jscomp$0(data.button);
  489.     }
  490.     if (is_string$jscomp$0(data.key)) {
  491.       data.key = cf_getKeyCode$jscomp$0(data.key);
  492.     }
  493.     return data;
  494.   }
  495.   /**
  496.    * @param {?} select
  497.    * @param {!Object} options
  498.    * @return {?}
  499.    */
  500.   function go_getPaginationObject$jscomp$0(select, options) {
  501.     options = go_getNaviObject$jscomp$0(select, options);
  502.     if (is_jquery$jscomp$0(options)) {
  503.       options = {
  504.         "container" : options
  505.       };
  506.     } else {
  507.       if (is_boolean$jscomp$0(options)) {
  508.         options = {
  509.           "keys" : options
  510.         };
  511.       }
  512.     }
  513.     return options;
  514.   }
  515.   /**
  516.    * @param {?} self
  517.    * @param {!Object} data
  518.    * @return {?}
  519.    */
  520.   function go_complementPaginationObject$jscomp$0(self, data) {
  521.     if (is_function$jscomp$0(data.container)) {
  522.       data.container = data.container.call(self);
  523.     }
  524.     if (is_string$jscomp$0(data.container)) {
  525.       data.container = $$jscomp$0(data.container);
  526.     }
  527.     if (!is_number$jscomp$0(data.items)) {
  528.       /** @type {boolean} */
  529.       data.items = false;
  530.     }
  531.     if (!is_boolean$jscomp$0(data.keys)) {
  532.       /** @type {boolean} */
  533.       data.keys = false;
  534.     }
  535.     if (!is_function$jscomp$0(data.anchorBuilder) && !is_false$jscomp$0(data.anchorBuilder)) {
  536.       /** @type {function(string): ?} */
  537.       data.anchorBuilder = $$jscomp$0.fn.carouFredSel.pageAnchorBuilder;
  538.     }
  539.     if (!is_number$jscomp$0(data.deviation)) {
  540.       /** @type {number} */
  541.       data.deviation = 0;
  542.     }
  543.     return data;
  544.   }
  545.   /**
  546.    * @param {?} name
  547.    * @param {!Object} data
  548.    * @return {?}
  549.    */
  550.   function go_getSwipeObject$jscomp$0(name, data) {
  551.     if (is_function$jscomp$0(data)) {
  552.       data = data.call(name);
  553.     }
  554.     if (is_undefined$jscomp$0(data)) {
  555.       data = {
  556.         "onTouch" : false
  557.       };
  558.     }
  559.     if (is_true$jscomp$0(data)) {
  560.       data = {
  561.         "onTouch" : data
  562.       };
  563.     } else {
  564.       if (is_number$jscomp$0(data)) {
  565.         data = {
  566.           "items" : data
  567.         };
  568.       }
  569.     }
  570.     return data;
  571.   }
  572.   /**
  573.    * @param {?} rmapper
  574.    * @param {!Object} m
  575.    * @return {?}
  576.    */
  577.   function go_complementSwipeObject$jscomp$0(rmapper, m) {
  578.     if (!is_boolean$jscomp$0(m.onTouch)) {
  579.       /** @type {boolean} */
  580.       m.onTouch = true;
  581.     }
  582.     if (!is_boolean$jscomp$0(m.onMouse)) {
  583.       /** @type {boolean} */
  584.       m.onMouse = false;
  585.     }
  586.     if (!is_object$jscomp$0(m.options)) {
  587.       m.options = {};
  588.     }
  589.     if (!is_boolean$jscomp$0(m.options.triggerOnTouchEnd)) {
  590.       /** @type {boolean} */
  591.       m.options.triggerOnTouchEnd = false;
  592.     }
  593.     return m;
  594.   }
  595.   /**
  596.    * @param {?} name
  597.    * @param {string} data
  598.    * @return {?}
  599.    */
  600.   function go_getMousewheelObject$jscomp$0(name, data) {
  601.     if (is_function$jscomp$0(data)) {
  602.       data = data.call(name);
  603.     }
  604.     if (is_true$jscomp$0(data)) {
  605.       data = {};
  606.     } else {
  607.       if (is_number$jscomp$0(data)) {
  608.         data = {
  609.           "items" : data
  610.         };
  611.       } else {
  612.         if (is_undefined$jscomp$0(data)) {
  613.           /** @type {boolean} */
  614.           data = false;
  615.         }
  616.       }
  617.     }
  618.     return data;
  619.   }
  620.   /**
  621.    * @param {?} a
  622.    * @param {?} b
  623.    * @return {?}
  624.    */
  625.   function go_complementMousewheelObject$jscomp$0(a, b) {
  626.     return b;
  627.   }
  628.   /**
  629.    * @param {number} p
  630.    * @param {number} i
  631.    * @param {boolean} e
  632.    * @param {!Object} self
  633.    * @param {!Object} data
  634.    * @return {?}
  635.    */
  636.   function gn_getItemIndex$jscomp$0(p, i, e, self, data) {
  637.     if (is_string$jscomp$0(p)) {
  638.       p = $$jscomp$0(p, data);
  639.     }
  640.     if (is_object$jscomp$0(p)) {
  641.       p = $$jscomp$0(p, data);
  642.     }
  643.     if (is_jquery$jscomp$0(p)) {
  644.       p = data.children().index(p);
  645.       if (!is_boolean$jscomp$0(e)) {
  646.         /** @type {boolean} */
  647.         e = false;
  648.       }
  649.     } else {
  650.       if (!is_boolean$jscomp$0(e)) {
  651.         /** @type {boolean} */
  652.         e = true;
  653.       }
  654.     }
  655.     if (!is_number$jscomp$0(p)) {
  656.       /** @type {number} */
  657.       p = 0;
  658.     }
  659.     if (!is_number$jscomp$0(i)) {
  660.       /** @type {number} */
  661.       i = 0;
  662.     }
  663.     if (e) {
  664.       p = p + self.first;
  665.     }
  666.     p = p + i;
  667.     if (self.total > 0) {
  668.       for (; p >= self.total;) {
  669.         /** @type {number} */
  670.         p = p - self.total;
  671.       }
  672.       for (; p < 0;) {
  673.         p = p + self.total;
  674.       }
  675.     }
  676.     return p;
  677.   }
  678.   /**
  679.    * @param {!Object} props
  680.    * @param {!Object} value
  681.    * @param {number} oldvalue
  682.    * @return {?}
  683.    */
  684.   function gn_getVisibleItemsPrev$jscomp$0(props, value, oldvalue) {
  685.     /** @type {number} */
  686.     var expected = 0;
  687.     /** @type {number} */
  688.     var x = 0;
  689.     /** @type {number} */
  690.     var i = oldvalue;
  691.     for (; i >= 0; i--) {
  692.       var $c_field = props.eq(i);
  693.       expected = expected + ($c_field.is(":visible") ? $c_field[value.d["outerWidth"]](true) : 0);
  694.       if (expected > value.maxDimension) {
  695.         return x;
  696.       }
  697.       if (i == 0) {
  698.         i = props.length;
  699.       }
  700.       x++;
  701.     }
  702.   }
  703.   /**
  704.    * @param {!Object} page
  705.    * @param {!Object} o
  706.    * @param {string} reAppend
  707.    * @return {?}
  708.    */
  709.   function gn_getVisibleItemsPrevFilter$jscomp$0(page, o, reAppend) {
  710.     return gn_getItemsPrevFilter$jscomp$0(page, o.items.filter, o.items.visibleConf.org, reAppend);
  711.   }
  712.   /**
  713.    * @param {!Object} properties
  714.    * @param {!Object} o
  715.    * @param {!Function} reAppend
  716.    * @param {undefined} alwaysDownload
  717.    * @return {?}
  718.    */
  719.   function gn_getScrollItemsPrevFilter$jscomp$0(properties, o, reAppend, alwaysDownload) {
  720.     return gn_getItemsPrevFilter$jscomp$0(properties, o.items.filter, alwaysDownload, reAppend);
  721.   }
  722.   /**
  723.    * @param {!Object} self
  724.    * @param {?} f
  725.    * @param {number} o
  726.    * @param {string} reAppend
  727.    * @return {?}
  728.    */
  729.   function gn_getItemsPrevFilter$jscomp$0(self, f, o, reAppend) {
  730.     /** @type {number} */
  731.     var typ = 0;
  732.     /** @type {number} */
  733.     var floorX = 0;
  734.     /** @type {string} */
  735.     var newIndex = reAppend;
  736.     var index = self.length;
  737.     for (; newIndex >= 0; newIndex--) {
  738.       floorX++;
  739.       if (floorX == index) {
  740.         return floorX;
  741.       }
  742.       var cell = self.eq(newIndex);
  743.       if (cell.is(f)) {
  744.         typ++;
  745.         if (typ == o) {
  746.           return floorX;
  747.         }
  748.       }
  749.       if (newIndex == 0) {
  750.         newIndex = index;
  751.       }
  752.     }
  753.   }
  754.   /**
  755.    * @param {!Object} b
  756.    * @param {!Object} n
  757.    * @return {?}
  758.    */
  759.   function gn_getVisibleOrg$jscomp$0(b, n) {
  760.     return n.items.visibleConf.org || b.children().slice(0, n.items.visible).filter(n.items.filter).length;
  761.   }
  762.   /**
  763.    * @param {!Object} el
  764.    * @param {!Object} value
  765.    * @param {number} target
  766.    * @return {?}
  767.    */
  768.   function gn_getVisibleItemsNext$jscomp$0(el, value, target) {
  769.     /** @type {number} */
  770.     var expected = 0;
  771.     /** @type {number} */
  772.     var comingtransition = 0;
  773.     /** @type {number} */
  774.     var a = target;
  775.     /** @type {number} */
  776.     var b = el.length - 1;
  777.     for (; a <= b; a++) {
  778.       var previousPrevious = el.eq(a);
  779.       expected = expected + (previousPrevious.is(":visible") ? previousPrevious[value.d["outerWidth"]](true) : 0);
  780.       if (expected > value.maxDimension) {
  781.         return comingtransition;
  782.       }
  783.       comingtransition++;
  784.       if (comingtransition == b + 1) {
  785.         return comingtransition;
  786.       }
  787.       if (a == b) {
  788.         /** @type {number} */
  789.         a = -1;
  790.       }
  791.     }
  792.   }
  793.   /**
  794.    * @param {!Object} o
  795.    * @param {!Object} s
  796.    * @param {number} c
  797.    * @param {string} b
  798.    * @return {?}
  799.    */
  800.   function gn_getVisibleItemsNextTestCircular$jscomp$0(o, s, c, b) {
  801.     var a = gn_getVisibleItemsNext$jscomp$0(o, s, c);
  802.     if (!s.circular) {
  803.       if (c + a > b) {
  804.         /** @type {number} */
  805.         a = b - c;
  806.       }
  807.     }
  808.     return a;
  809.   }
  810.   /**
  811.    * @param {!Object} parent
  812.    * @param {!Object} state
  813.    * @param {number} i
  814.    * @return {?}
  815.    */
  816.   function gn_getVisibleItemsNextFilter$jscomp$0(parent, state, i) {
  817.     return gn_getItemsNextFilter$jscomp$0(parent, state.items.filter, state.items.visibleConf.org, i, state.circular);
  818.   }
  819.   /**
  820.    * @param {!Object} node
  821.    * @param {!Object} settings
  822.    * @param {number} responses
  823.    * @param {number} callback
  824.    * @return {?}
  825.    */
  826.   function gn_getScrollItemsNextFilter$jscomp$0(node, settings, responses, callback) {
  827.     return gn_getItemsNextFilter$jscomp$0(node, settings.items.filter, callback + 1, responses, settings.circular) - 1;
  828.   }
  829.   /**
  830.    * @param {!Object} _
  831.    * @param {?} val
  832.    * @param {(!Function|number)} url
  833.    * @param {number} s
  834.    * @param {?} wlhash
  835.    * @return {?}
  836.    */
  837.   function gn_getItemsNextFilter$jscomp$0(_, val, url, s, wlhash) {
  838.     /** @type {number} */
  839.     var lastImageUrl = 0;
  840.     /** @type {number} */
  841.     var va = 0;
  842.     /** @type {number} */
  843.     var x = s;
  844.     /** @type {number} */
  845.     var a = _.length - 1;
  846.     for (; x <= a; x++) {
  847.       va++;
  848.       if (va >= a) {
  849.         return va;
  850.       }
  851.       var QuickBase = _.eq(x);
  852.       if (QuickBase.is(val)) {
  853.         lastImageUrl++;
  854.         if (lastImageUrl == url) {
  855.           return va;
  856.         }
  857.       }
  858.       if (x == a) {
  859.         /** @type {number} */
  860.         x = -1;
  861.       }
  862.     }
  863.   }
  864.   /**
  865.    * @param {string} elem
  866.    * @param {!Object} o
  867.    * @return {?}
  868.    */
  869.   function gi_getCurrentItems$jscomp$0(elem, o) {
  870.     return elem.slice(0, o.items.visible);
  871.   }
  872.   /**
  873.    * @param {string} s
  874.    * @param {!Object} o
  875.    * @param {number} i
  876.    * @return {?}
  877.    */
  878.   function gi_getOldItemsPrev$jscomp$0(s, o, i) {
  879.     return s.slice(i, o.items.visibleConf.old + i);
  880.   }
  881.   /**
  882.    * @param {string} e
  883.    * @param {!Object} o
  884.    * @return {?}
  885.    */
  886.   function gi_getNewItemsPrev$jscomp$0(e, o) {
  887.     return e.slice(0, o.items.visible);
  888.   }
  889.   /**
  890.    * @param {string} el
  891.    * @param {!Object} add
  892.    * @return {?}
  893.    */
  894.   function gi_getOldItemsNext$jscomp$0(el, add) {
  895.     return el.slice(0, add.items.visibleConf.old);
  896.   }
  897.   /**
  898.    * @param {string} i
  899.    * @param {!Object} n
  900.    * @param {number} max
  901.    * @return {?}
  902.    */
  903.   function gi_getNewItemsNext$jscomp$0(i, n, max) {
  904.     return i.slice(max, n.items.visible + max);
  905.   }
  906.   /**
  907.    * @param {!Object} obj
  908.    * @param {!Object} elem
  909.    * @param {string} key
  910.    * @return {undefined}
  911.    */
  912.   function sz_storeMargin$jscomp$0(obj, elem, key) {
  913.     if (elem.usePadding) {
  914.       if (!is_string$jscomp$0(key)) {
  915.         /** @type {string} */
  916.         key = "_cfs_origCssMargin";
  917.       }
  918.       obj.each(function() {
  919.         var el = $$jscomp$0(this);
  920.         /** @type {number} */
  921.         var b = parseInt(el.css(elem.d["marginRight"]), 10);
  922.         if (!is_number$jscomp$0(b)) {
  923.           /** @type {number} */
  924.           b = 0;
  925.         }
  926.         el.data(key, b);
  927.       });
  928.     }
  929.   }
  930.   /**
  931.    * @param {!Object} element
  932.    * @param {!Object} elem
  933.    * @param {string} i
  934.    * @return {undefined}
  935.    */
  936.   function sz_resetMargin$jscomp$0(element, elem, i) {
  937.     if (elem.usePadding) {
  938.       var x = is_boolean$jscomp$0(i) ? i : false;
  939.       if (!is_number$jscomp$0(i)) {
  940.         /** @type {number} */
  941.         i = 0;
  942.       }
  943.       sz_storeMargin$jscomp$0(element, elem, "_cfs_tempCssMargin");
  944.       element.each(function() {
  945.         var target = $$jscomp$0(this);
  946.         target.css(elem.d["marginRight"], x ? target.data("_cfs_tempCssMargin") : i + target.data("_cfs_origCssMargin"));
  947.       });
  948.     }
  949.   }
  950.   /**
  951.    * @param {!Object} h
  952.    * @return {undefined}
  953.    */
  954.   function sz_storeOrigCss$jscomp$0(h) {
  955.     h.each(function() {
  956.       var $ele = $$jscomp$0(this);
  957.       $ele.data("_cfs_origCss", $ele.attr("style") || "");
  958.     });
  959.   }
  960.   /**
  961.    * @param {!Object} oThis
  962.    * @return {undefined}
  963.    */
  964.   function sz_restoreOrigCss$jscomp$0(oThis) {
  965.     oThis.each(function() {
  966.       var $ele = $$jscomp$0(this);
  967.       $ele.attr("style", $ele.data("_cfs_origCss") || "");
  968.     });
  969.   }
  970.   /**
  971.    * @param {!Object} obj
  972.    * @param {!Object} items
  973.    * @return {undefined}
  974.    */
  975.   function sz_setResponsiveSizes$jscomp$0(obj, items) {
  976.     var visible = obj.items.visible;
  977.     var i = obj.items[obj.d["width"]];
  978.     var level = obj[obj.d["height"]];
  979.     var adjustedLevel = is_percentage$jscomp$0(level);
  980.     items.each(function() {
  981.       var d = $$jscomp$0(this);
  982.       /** @type {number} */
  983.       var x = i - ms_getPaddingBorderMargin$jscomp$0(d, obj, "Width");
  984.       d[obj.d["width"]](x);
  985.       if (adjustedLevel) {
  986.         d[obj.d["height"]](ms_getPercentage$jscomp$0(x, level));
  987.       }
  988.     });
  989.   }
  990.   /**
  991.    * @param {!Object} _
  992.    * @param {!Object} options
  993.    * @return {?}
  994.    */
  995.   function sz_setSizes$jscomp$0(_, options) {
  996.     var $item = _.parent();
  997.     var a = _.children();
  998.     var mainLink = gi_getCurrentItems$jscomp$0(a, options);
  999.     var itemCSS = cf_mapWrapperSizes$jscomp$0(ms_getSizes$jscomp$0(mainLink, options, true), options, false);
  1000.     $item.css(itemCSS);
  1001.     if (options.usePadding) {
  1002.       var item = options.padding;
  1003.       var val = item[options.d[1]];
  1004.       if (options.align && val < 0) {
  1005.         /** @type {number} */
  1006.         val = 0;
  1007.       }
  1008.       var filterInput = mainLink.last();
  1009.       filterInput.css(options.d["marginRight"], filterInput.data("_cfs_origCssMargin") + val);
  1010.       _.css(options.d["top"], item[options.d[0]]);
  1011.       _.css(options.d["left"], item[options.d[3]]);
  1012.     }
  1013.     _.css(options.d["width"], itemCSS[options.d["width"]] + ms_getTotalSize$jscomp$0(a, options, "width") * 2);
  1014.     _.css(options.d["height"], ms_getLargestSize$jscomp$0(a, options, "height"));
  1015.     return itemCSS;
  1016.   }
  1017.   /**
  1018.    * @param {!Object} s
  1019.    * @param {!Object} args
  1020.    * @param {boolean} body
  1021.    * @return {?}
  1022.    */
  1023.   function ms_getSizes$jscomp$0(s, args, body) {
  1024.     return [ms_getTotalSize$jscomp$0(s, args, "width", body), ms_getLargestSize$jscomp$0(s, args, "height", body)];
  1025.   }
  1026.   /**
  1027.    * @param {!Object} b
  1028.    * @param {!Object} f
  1029.    * @param {string} i
  1030.    * @param {boolean} ast
  1031.    * @return {?}
  1032.    */
  1033.   function ms_getLargestSize$jscomp$0(b, f, i, ast) {
  1034.     if (!is_boolean$jscomp$0(ast)) {
  1035.       /** @type {boolean} */
  1036.       ast = false;
  1037.     }
  1038.     if (is_number$jscomp$0(f[f.d[i]]) && ast) {
  1039.       return f[f.d[i]];
  1040.     }
  1041.     if (is_number$jscomp$0(f.items[f.d[i]])) {
  1042.       return f.items[f.d[i]];
  1043.     }
  1044.     /** @type {string} */
  1045.     i = i.toLowerCase().indexOf("width") > -1 ? "outerWidth" : "outerHeight";
  1046.     return ms_getTrueLargestSize$jscomp$0(b, f, i);
  1047.   }
  1048.   /**
  1049.    * @param {!Object} c
  1050.    * @param {!Object} f
  1051.    * @param {string} v
  1052.    * @return {?}
  1053.    */
  1054.   function ms_getTrueLargestSize$jscomp$0(c, f, v) {
  1055.     /** @type {number} */
  1056.     var latestUploadNum = 0;
  1057.     /** @type {number} */
  1058.     var i = 0;
  1059.     var cl = c.length;
  1060.     for (; i < cl; i++) {
  1061.       var set = c.eq(i);
  1062.       var partNum = set.is(":visible") ? set[f.d[v]](true) : 0;
  1063.       if (latestUploadNum < partNum) {
  1064.         latestUploadNum = partNum;
  1065.       }
  1066.     }
  1067.     return latestUploadNum;
  1068.   }
  1069.   /**
  1070.    * @param {!Object} b
  1071.    * @param {!Object} result
  1072.    * @param {string} id
  1073.    * @param {boolean} a
  1074.    * @return {?}
  1075.    */
  1076.   function ms_getTotalSize$jscomp$0(b, result, id, a) {
  1077.     if (!is_boolean$jscomp$0(a)) {
  1078.       /** @type {boolean} */
  1079.       a = false;
  1080.     }
  1081.     if (is_number$jscomp$0(result[result.d[id]]) && a) {
  1082.       return result[result.d[id]];
  1083.     }
  1084.     if (is_number$jscomp$0(result.items[result.d[id]])) {
  1085.       return result.items[result.d[id]] * b.length;
  1086.     }
  1087.     /** @type {string} */
  1088.     var m = id.toLowerCase().indexOf("width") > -1 ? "outerWidth" : "outerHeight";
  1089.     /** @type {number} */
  1090.     var ret = 0;
  1091.     /** @type {number} */
  1092.     var i = 0;
  1093.     var bLength = b.length;
  1094.     for (; i < bLength; i++) {
  1095.       var values = b.eq(i);
  1096.       ret = ret + (values.is(":visible") ? values[result.d[m]](true) : 0);
  1097.     }
  1098.     return ret;
  1099.   }
  1100.   /**
  1101.    * @param {!Object} s
  1102.    * @param {!Object} o
  1103.    * @param {string} type
  1104.    * @return {?}
  1105.    */
  1106.   function ms_getParentSize$jscomp$0(s, o, type) {
  1107.     var b = s.is(":visible");
  1108.     if (b) {
  1109.       s.hide();
  1110.     }
  1111.     var f = s.parent()[o.d[type]]();
  1112.     if (b) {
  1113.       s.show();
  1114.     }
  1115.     return f;
  1116.   }
  1117.   /**
  1118.    * @param {!Object} options
  1119.    * @param {?} grunt
  1120.    * @return {?}
  1121.    */
  1122.   function ms_getMaxDimension$jscomp$0(options, grunt) {
  1123.     return is_number$jscomp$0(options[options.d["width"]]) ? options[options.d["width"]] : grunt;
  1124.   }
  1125.   /**
  1126.    * @param {!Object} obj
  1127.    * @param {!Object} test
  1128.    * @param {string} a
  1129.    * @return {?}
  1130.    */
  1131.   function ms_hasVariableSizes$jscomp$0(obj, test, a) {
  1132.     /** @type {boolean} */
  1133.     var _axisVisible = false;
  1134.     /** @type {boolean} */
  1135.     var v = false;
  1136.     /** @type {number} */
  1137.     var index = 0;
  1138.     var n = obj.length;
  1139.     for (; index < n; index++) {
  1140.       var node = obj.eq(index);
  1141.       var value = node.is(":visible") ? node[test.d[a]](true) : 0;
  1142.       if (_axisVisible === false) {
  1143.         _axisVisible = value;
  1144.       } else {
  1145.         if (_axisVisible != value) {
  1146.           /** @type {boolean} */
  1147.           v = true;
  1148.         }
  1149.       }
  1150.       if (_axisVisible == 0) {
  1151.         /** @type {boolean} */
  1152.         v = true;
  1153.       }
  1154.     }
  1155.     return v;
  1156.   }
  1157.   /**
  1158.    * @param {?} data
  1159.    * @param {!Object} elem
  1160.    * @param {string} name
  1161.    * @return {?}
  1162.    */
  1163.   function ms_getPaddingBorderMargin$jscomp$0(data, elem, name) {
  1164.     return data[elem.d["outer" + name]](true) - data[elem.d[name.toLowerCase()]]();
  1165.   }
  1166.   /**
  1167.    * @param {number} m
  1168.    * @param {(number|string)} val
  1169.    * @return {?}
  1170.    */
  1171.   function ms_getPercentage$jscomp$0(m, val) {
  1172.     if (is_percentage$jscomp$0(val)) {
  1173.       /** @type {number} */
  1174.       val = parseInt(val.slice(0, -1), 10);
  1175.       if (!is_number$jscomp$0(val)) {
  1176.         return m;
  1177.       }
  1178.       /** @type {number} */
  1179.       m = m * (val / 100);
  1180.     }
  1181.     return m;
  1182.   }
  1183.   /**
  1184.    * @param {string} name
  1185.    * @param {!Object} obj
  1186.    * @param {boolean} op
  1187.    * @param {boolean} b
  1188.    * @param {boolean} a
  1189.    * @return {?}
  1190.    */
  1191.   function cf_e$jscomp$0(name, obj, op, b, a) {
  1192.     if (!is_boolean$jscomp$0(op)) {
  1193.       /** @type {boolean} */
  1194.       op = true;
  1195.     }
  1196.     if (!is_boolean$jscomp$0(b)) {
  1197.       /** @type {boolean} */
  1198.       b = true;
  1199.     }
  1200.     if (!is_boolean$jscomp$0(a)) {
  1201.       /** @type {boolean} */
  1202.       a = false;
  1203.     }
  1204.     if (op) {
  1205.       name = obj.events.prefix + name;
  1206.     }
  1207.     if (b) {
  1208.       /** @type {string} */
  1209.       name = name + "." + obj.events.namespace;
  1210.     }
  1211.     if (b && a) {
  1212.       name = name + obj.serialNumber;
  1213.     }
  1214.     return name;
  1215.   }
  1216.   /**
  1217.    * @param {string} name
  1218.    * @param {!Function} o
  1219.    * @return {?}
  1220.    */
  1221.   function cf_c$jscomp$0(name, o) {
  1222.     return is_string$jscomp$0(o.classnames[name]) ? o.classnames[name] : name;
  1223.   }
  1224.   /**
  1225.    * @param {!Object} b
  1226.    * @param {!Object} options
  1227.    * @param {boolean} animate
  1228.    * @return {?}
  1229.    */
  1230.   function cf_mapWrapperSizes$jscomp$0(b, options, animate) {
  1231.     if (!is_boolean$jscomp$0(animate)) {
  1232.       /** @type {boolean} */
  1233.       animate = true;
  1234.     }
  1235.     var sc = options.usePadding && animate ? options.padding : [0, 0, 0, 0];
  1236.     var c = {};
  1237.     c[options.d["width"]] = b[0] + sc[1] + sc[3];
  1238.     c[options.d["height"]] = b[1] + sc[0] + sc[2];
  1239.     return c;
  1240.   }
  1241.   /**
  1242.    * @param {!Array} values
  1243.    * @param {!Array} obj
  1244.    * @return {?}
  1245.    */
  1246.   function cf_sortParams$jscomp$0(values, obj) {
  1247.     /** @type {!Array} */
  1248.     var newCentroids = [];
  1249.     /** @type {number} */
  1250.     var i = 0;
  1251.     var l = values.length;
  1252.     for (; i < l; i++) {
  1253.       /** @type {number} */
  1254.       var j = 0;
  1255.       var imagesLen = obj.length;
  1256.       for (; j < imagesLen; j++) {
  1257.         if (obj[j].indexOf(typeof values[i]) > -1 && is_undefined$jscomp$0(newCentroids[j])) {
  1258.           newCentroids[j] = values[i];
  1259.           break;
  1260.         }
  1261.       }
  1262.     }
  1263.     return newCentroids;
  1264.   }
  1265.   /**
  1266.    * @param {!Object} val
  1267.    * @return {?}
  1268.    */
  1269.   function cf_getPadding$jscomp$0(val) {
  1270.     if (is_undefined$jscomp$0(val)) {
  1271.       return [0, 0, 0, 0];
  1272.     }
  1273.     if (is_number$jscomp$0(val)) {
  1274.       return [val, val, val, val];
  1275.     }
  1276.     if (is_string$jscomp$0(val)) {
  1277.       val = val.split("px").join("").split("em").join("").split(" ");
  1278.     }
  1279.     if (!is_array$jscomp$0(val)) {
  1280.       return [0, 0, 0, 0];
  1281.     }
  1282.     /** @type {number} */
  1283.     var j = 0;
  1284.     for (; j < 4; j++) {
  1285.       /** @type {number} */
  1286.       val[j] = parseInt(val[j], 10);
  1287.     }
  1288.     switch(val.length) {
  1289.       case 0:
  1290.         return [0, 0, 0, 0];
  1291.       case 1:
  1292.         return [val[0], val[0], val[0], val[0]];
  1293.       case 2:
  1294.         return [val[0], val[1], val[0], val[1]];
  1295.       case 3:
  1296.         return [val[0], val[1], val[2], val[1]];
  1297.       default:
  1298.         return [val[0], val[1], val[2], val[3]];
  1299.     }
  1300.   }
  1301.   /**
  1302.    * @param {!Object} rate
  1303.    * @param {!Object} options
  1304.    * @return {?}
  1305.    */
  1306.   function cf_getAlignPadding$jscomp$0(rate, options) {
  1307.     /** @type {number} */
  1308.     var buttonMax = is_number$jscomp$0(options[options.d["width"]]) ? Math.ceil(options[options.d["width"]] - ms_getTotalSize$jscomp$0(rate, options, "width")) : 0;
  1309.     switch(options.align) {
  1310.       case "left":
  1311.         return [0, buttonMax];
  1312.       case "right":
  1313.         return [buttonMax, 0];
  1314.       case "center":
  1315.       default:
  1316.         return [Math.ceil(buttonMax / 2), Math.floor(buttonMax / 2)];
  1317.     }
  1318.   }
  1319.   /**
  1320.    * @param {!Object} options
  1321.    * @return {?}
  1322.    */
  1323.   function cf_getDimensions$jscomp$0(options) {
  1324.     /** @type {!Array} */
  1325.     var sortedValueArrays = [["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]];
  1326.     var imagesLen = sortedValueArrays[0].length;
  1327.     /** @type {number} */
  1328.     var i = options.direction == "right" || options.direction == "left" ? 0 : 1;
  1329.     var editorMapIdItem = {};
  1330.     /** @type {number} */
  1331.     var j = 0;
  1332.     for (; j < imagesLen; j++) {
  1333.       editorMapIdItem[sortedValueArrays[0][j]] = sortedValueArrays[i][j];
  1334.     }
  1335.     return editorMapIdItem;
  1336.   }
  1337.   /**
  1338.    * @param {number} file
  1339.    * @param {!Object} group
  1340.    * @param {!Object} s
  1341.    * @param {?} fill
  1342.    * @return {?}
  1343.    */
  1344.   function cf_getAdjust$jscomp$0(file, group, s, fill) {
  1345.     /** @type {number} */
  1346.     var f = file;
  1347.     if (is_function$jscomp$0(s)) {
  1348.       f = s.call(fill, f);
  1349.     } else {
  1350.       if (is_string$jscomp$0(s)) {
  1351.         var a = s.split("+");
  1352.         var m = s.split("-");
  1353.         if (m.length > a.length) {
  1354.           /** @type {boolean} */
  1355.           var c = true;
  1356.           var str = m[0];
  1357.           var b = m[1];
  1358.         } else {
  1359.           /** @type {boolean} */
  1360.           c = false;
  1361.           str = a[0];
  1362.           b = a[1];
  1363.         }
  1364.         switch(str) {
  1365.           case "even":
  1366.             f = file % 2 == 1 ? file - 1 : file;
  1367.             break;
  1368.           case "odd":
  1369.             f = file % 2 == 0 ? file - 1 : file;
  1370.             break;
  1371.           default:
  1372.             /** @type {number} */
  1373.             f = file;
  1374.             break;
  1375.         }
  1376.         /** @type {number} */
  1377.         b = parseInt(b, 10);
  1378.         if (is_number$jscomp$0(b)) {
  1379.           if (c) {
  1380.             /** @type {number} */
  1381.             b = -b;
  1382.           }
  1383.           f = f + b;
  1384.         }
  1385.       }
  1386.     }
  1387.     if (!is_number$jscomp$0(f) || f < 1) {
  1388.       /** @type {number} */
  1389.       f = 1;
  1390.     }
  1391.     return f;
  1392.   }
  1393.   /**
  1394.    * @param {undefined} val
  1395.    * @param {!Object} view
  1396.    * @param {!Object} m
  1397.    * @param {?} b
  1398.    * @return {?}
  1399.    */
  1400.   function cf_getItemsAdjust$jscomp$0(val, view, m, b) {
  1401.     return cf_getItemAdjustMinMax$jscomp$0(cf_getAdjust$jscomp$0(val, view, m, b), view.items.visibleConf);
  1402.   }
  1403.   /**
  1404.    * @param {number} result
  1405.    * @param {!Object} data
  1406.    * @return {?}
  1407.    */
  1408.   function cf_getItemAdjustMinMax$jscomp$0(result, data) {
  1409.     if (is_number$jscomp$0(data.min) && result < data.min) {
  1410.       result = data.min;
  1411.     }
  1412.     if (is_number$jscomp$0(data.max) && result > data.max) {
  1413.       result = data.max;
  1414.     }
  1415.     if (result < 1) {
  1416.       /** @type {number} */
  1417.       result = 1;
  1418.     }
  1419.     return result;
  1420.   }
  1421.   /**
  1422.    * @param {!Array} arr
  1423.    * @return {?}
  1424.    */
  1425.   function cf_getSynchArr$jscomp$0(arr) {
  1426.     if (!is_array$jscomp$0(arr)) {
  1427.       /** @type {!Array} */
  1428.       arr = [[arr]];
  1429.     }
  1430.     if (!is_array$jscomp$0(arr[0])) {
  1431.       /** @type {!Array} */
  1432.       arr = [arr];
  1433.     }
  1434.     /** @type {number} */
  1435.     var j = 0;
  1436.     var i = arr.length;
  1437.     for (; j < i; j++) {
  1438.       if (is_string$jscomp$0(arr[j][0])) {
  1439.         arr[j][0] = $$jscomp$0(arr[j][0]);
  1440.       }
  1441.       if (!is_boolean$jscomp$0(arr[j][1])) {
  1442.         /** @type {boolean} */
  1443.         arr[j][1] = true;
  1444.       }
  1445.       if (!is_boolean$jscomp$0(arr[j][2])) {
  1446.         /** @type {boolean} */
  1447.         arr[j][2] = true;
  1448.       }
  1449.       if (!is_number$jscomp$0(arr[j][3])) {
  1450.         /** @type {number} */
  1451.         arr[j][3] = 0;
  1452.       }
  1453.     }
  1454.     return arr;
  1455.   }
  1456.   /**
  1457.    * @param {string} key
  1458.    * @return {?}
  1459.    */
  1460.   function cf_getKeyCode$jscomp$0(key) {
  1461.     if (key == "right") {
  1462.       return 39;
  1463.     }
  1464.     if (key == "left") {
  1465.       return 37;
  1466.     }
  1467.     if (key == "up") {
  1468.       return 38;
  1469.     }
  1470.     if (key == "down") {
  1471.       return 40;
  1472.     }
  1473.     return -1;
  1474.   }
  1475.   /**
  1476.    * @param {string} op
  1477.    * @param {!Object} _this
  1478.    * @param {!Object} args
  1479.    * @return {undefined}
  1480.    */
  1481.   function cf_setCookie$jscomp$0(op, _this, args) {
  1482.     if (op) {
  1483.       var v = _this.triggerHandler(cf_e$jscomp$0("currentPosition", args));
  1484.       $$jscomp$0.fn.carouFredSel.cookie.set(op, v);
  1485.     }
  1486.   }
  1487.   /**
  1488.    * @param {string} n
  1489.    * @return {?}
  1490.    */
  1491.   function cf_getCookie$jscomp$0(n) {
  1492.     var borderSize = $$jscomp$0.fn.carouFredSel.cookie.get(n);
  1493.     return borderSize == "" ? 0 : borderSize;
  1494.   }
  1495.   /**
  1496.    * @param {!Object} that
  1497.    * @param {!Array} keys
  1498.    * @return {?}
  1499.    */
  1500.   function in_mapCss$jscomp$0(that, keys) {
  1501.     var listsByKey = {};
  1502.     /** @type {number} */
  1503.     var i = 0;
  1504.     var l = keys.length;
  1505.     for (; i < l; i++) {
  1506.       listsByKey[keys[i]] = that.css(keys[i]);
  1507.     }
  1508.     return listsByKey;
  1509.   }
  1510.   /**
  1511.    * @param {!Object} data
  1512.    * @param {!Object} options
  1513.    * @param {!Object} d
  1514.    * @param {string} s
  1515.    * @return {?}
  1516.    */
  1517.   function in_complementItems$jscomp$0(data, options, d, s) {
  1518.     if (!is_object$jscomp$0(data.visibleConf)) {
  1519.       data.visibleConf = {};
  1520.     }
  1521.     if (!is_object$jscomp$0(data.sizesConf)) {
  1522.       data.sizesConf = {};
  1523.     }
  1524.     if (data.start == 0 && is_number$jscomp$0(s)) {
  1525.       /** @type {string} */
  1526.       data.start = s;
  1527.     }
  1528.     if (is_object$jscomp$0(data.visible)) {
  1529.       data.visibleConf.min = data.visible.min;
  1530.       data.visibleConf.max = data.visible.max;
  1531.       /** @type {boolean} */
  1532.       data.visible = false;
  1533.     } else {
  1534.       if (is_string$jscomp$0(data.visible)) {
  1535.         if (data.visible == "variable") {
  1536.           /** @type {boolean} */
  1537.           data.visibleConf.variable = true;
  1538.         } else {
  1539.           data.visibleConf.adjust = data.visible;
  1540.         }
  1541.         /** @type {boolean} */
  1542.         data.visible = false;
  1543.       } else {
  1544.         if (is_function$jscomp$0(data.visible)) {
  1545.           data.visibleConf.adjust = data.visible;
  1546.           /** @type {boolean} */
  1547.           data.visible = false;
  1548.         }
  1549.       }
  1550.     }
  1551.     if (!is_string$jscomp$0(data.filter)) {
  1552.       /** @type {string} */
  1553.       data.filter = d.filter(":hidden").length > 0 ? ":visible" : "*";
  1554.     }
  1555.     if (!data[options.d["width"]]) {
  1556.       if (options.responsive) {
  1557.         debug$jscomp$0(true, "Set a " + options.d["width"] + " for the items!");
  1558.         data[options.d["width"]] = ms_getTrueLargestSize$jscomp$0(d, options, "outerWidth");
  1559.       } else {
  1560.         data[options.d["width"]] = ms_hasVariableSizes$jscomp$0(d, options, "outerWidth") ? "variable" : d[options.d["outerWidth"]](true);
  1561.       }
  1562.     }
  1563.     if (!data[options.d["height"]]) {
  1564.       data[options.d["height"]] = ms_hasVariableSizes$jscomp$0(d, options, "outerHeight") ? "variable" : d[options.d["outerHeight"]](true);
  1565.     }
  1566.     data.sizesConf.width = data.width;
  1567.     data.sizesConf.height = data.height;
  1568.     return data;
  1569.   }
  1570.   /**
  1571.    * @param {!Object} obj
  1572.    * @param {?} p1
  1573.    * @return {?}
  1574.    */
  1575.   function in_complementVisibleItems$jscomp$0(obj, p1) {
  1576.     if (obj.items[obj.d["width"]] == "variable") {
  1577.       /** @type {boolean} */
  1578.       obj.items.visibleConf.variable = true;
  1579.     }
  1580.     if (!obj.items.visibleConf.variable) {
  1581.       if (is_number$jscomp$0(obj[obj.d["width"]])) {
  1582.         /** @type {number} */
  1583.         obj.items.visible = Math.floor(obj[obj.d["width"]] / obj.items[obj.d["width"]]);
  1584.       } else {
  1585.         /** @type {number} */
  1586.         obj.items.visible = Math.floor(p1 / obj.items[obj.d["width"]]);
  1587.         /** @type {number} */
  1588.         obj[obj.d["width"]] = obj.items.visible * obj.items[obj.d["width"]];
  1589.         if (!obj.items.visibleConf.adjust) {
  1590.           /** @type {boolean} */
  1591.           obj.align = false;
  1592.         }
  1593.       }
  1594.       if (obj.items.visible == "Infinity" || obj.items.visible < 1) {
  1595.         debug$jscomp$0(true, 'Not a valid number of visible items: Set to "variable".');
  1596.         /** @type {boolean} */
  1597.         obj.items.visibleConf.variable = true;
  1598.       }
  1599.     }
  1600.     return obj;
  1601.   }
  1602.   /**
  1603.    * @param {string} s
  1604.    * @param {!Object} o
  1605.    * @param {!Object} done
  1606.    * @return {?}
  1607.    */
  1608.   function in_complementPrimarySize$jscomp$0(s, o, done) {
  1609.     if (s == "auto") {
  1610.       s = ms_getTrueLargestSize$jscomp$0(done, o, "outerWidth");
  1611.     }
  1612.     return s;
  1613.   }
  1614.   /**
  1615.    * @param {string} s
  1616.    * @param {!Object} data
  1617.    * @param {!Object} c
  1618.    * @return {?}
  1619.    */
  1620.   function in_complementSecondarySize$jscomp$0(s, data, c) {
  1621.     if (s == "auto") {
  1622.       s = ms_getTrueLargestSize$jscomp$0(c, data, "outerHeight");
  1623.     }
  1624.     if (!s) {
  1625.       s = data.items[data.d["height"]];
  1626.     }
  1627.     return s;
  1628.   }
  1629.   /**
  1630.    * @param {!Object} o
  1631.    * @param {string} value
  1632.    * @return {?}
  1633.    */
  1634.   function in_getAlignPadding$jscomp$0(o, value) {
  1635.     var expon = cf_getAlignPadding$jscomp$0(gi_getCurrentItems$jscomp$0(value, o), o);
  1636.     o.padding[o.d[1]] = expon[1];
  1637.     o.padding[o.d[3]] = expon[0];
  1638.     return o;
  1639.   }
  1640.   /**
  1641.    * @param {!Object} o
  1642.    * @param {!NodeList} settings
  1643.    * @param {?} options
  1644.    * @return {?}
  1645.    */
  1646.   function in_getResponsiveValues$jscomp$0(o, settings, options) {
  1647.     var v = cf_getItemAdjustMinMax$jscomp$0(Math.ceil(o[o.d["width"]] / o.items[o.d["width"]]), o.items.visibleConf);
  1648.     if (v > settings.length) {
  1649.       v = settings.length;
  1650.     }
  1651.     /** @type {number} */
  1652.     var one = Math.floor(o[o.d["width"]] / v);
  1653.     o.items.visible = v;
  1654.     /** @type {number} */
  1655.     o.items[o.d["width"]] = one;
  1656.     /** @type {number} */
  1657.     o[o.d["width"]] = v * one;
  1658.     return o;
  1659.   }
  1660.   /**
  1661.    * @param {!Object} data
  1662.    * @return {?}
  1663.    */
  1664.   function bt_pauseOnHoverConfig$jscomp$0(data) {
  1665.     if (is_string$jscomp$0(data)) {
  1666.       /** @type {boolean} */
  1667.       var i = data.indexOf("immediate") > -1 ? true : false;
  1668.       /** @type {boolean} */
  1669.       var _i = data.indexOf("resume") > -1 ? true : false;
  1670.     } else {
  1671.       /** @type {boolean} */
  1672.       i = _i = false;
  1673.     }
  1674.     return [i, _i];
  1675.   }
  1676.   /**
  1677.    * @param {boolean} val
  1678.    * @return {?}
  1679.    */
  1680.   function bt_mousesheelNumber$jscomp$0(val) {
  1681.     return is_number$jscomp$0(val) ? val : null;
  1682.   }
  1683.   /**
  1684.    * @param {!Object} variable
  1685.    * @return {?}
  1686.    */
  1687.   function is_null$jscomp$0(variable) {
  1688.     return variable === null;
  1689.   }
  1690.   /**
  1691.    * @param {!Object} val
  1692.    * @return {?}
  1693.    */
  1694.   function is_undefined$jscomp$0(val) {
  1695.     return is_null$jscomp$0(val) || typeof val == "undefined" || val === "" || val === "undefined";
  1696.   }
  1697.   /**
  1698.    * @param {!Object} val
  1699.    * @return {?}
  1700.    */
  1701.   function is_array$jscomp$0(val) {
  1702.     return val instanceof Array;
  1703.   }
  1704.   /**
  1705.    * @param {?} value
  1706.    * @return {?}
  1707.    */
  1708.   function is_jquery$jscomp$0(value) {
  1709.     return value instanceof jQuery;
  1710.   }
  1711.   /**
  1712.    * @param {!Object} value
  1713.    * @return {?}
  1714.    */
  1715.   function is_object$jscomp$0(value) {
  1716.     return (value instanceof Object || typeof value == "object") && !is_null$jscomp$0(value) && !is_jquery$jscomp$0(value) && !is_array$jscomp$0(value);
  1717.   }
  1718.   /**
  1719.    * @param {?} object
  1720.    * @return {?}
  1721.    */
  1722.   function is_number$jscomp$0(object) {
  1723.     return (object instanceof Number || typeof object == "number") && !isNaN(object);
  1724.   }
  1725.   /**
  1726.    * @param {!Object} value
  1727.    * @return {?}
  1728.    */
  1729.   function is_string$jscomp$0(value) {
  1730.     return (value instanceof String || typeof value == "string") && !is_undefined$jscomp$0(value) && !is_true$jscomp$0(value) && !is_false$jscomp$0(value);
  1731.   }
  1732.   /**
  1733.    * @param {!Object} value
  1734.    * @return {?}
  1735.    */
  1736.   function is_function$jscomp$0(value) {
  1737.     return value instanceof Function || typeof value == "function";
  1738.   }
  1739.   /**
  1740.    * @param {string} b
  1741.    * @return {?}
  1742.    */
  1743.   function is_boolean$jscomp$0(b) {
  1744.     return b instanceof Boolean || typeof b == "boolean" || is_true$jscomp$0(b) || is_false$jscomp$0(b);
  1745.   }
  1746.   /**
  1747.    * @param {!Object} field
  1748.    * @return {?}
  1749.    */
  1750.   function is_true$jscomp$0(field) {
  1751.     return field === true || field === "true";
  1752.   }
  1753.   /**
  1754.    * @param {!Object} value
  1755.    * @return {?}
  1756.    */
  1757.   function is_false$jscomp$0(value) {
  1758.     return value === false || value === "false";
  1759.   }
  1760.   /**
  1761.    * @param {string} num
  1762.    * @return {?}
  1763.    */
  1764.   function is_percentage$jscomp$0(num) {
  1765.     return is_string$jscomp$0(num) && num.slice(-1) == "%";
  1766.   }
  1767.   /**
  1768.    * @return {?}
  1769.    */
  1770.   function getTime$jscomp$0() {
  1771.     return (new Date).getTime();
  1772.   }
  1773.   /**
  1774.    * @param {string} dash_on
  1775.    * @param {string} dash_off
  1776.    * @return {undefined}
  1777.    */
  1778.   function deprecated$jscomp$0(dash_on, dash_off) {
  1779.     debug$jscomp$0(true, dash_on + " is DEPRECATED, support for it will be removed. Use " + dash_off + " instead.");
  1780.   }
  1781.   /**
  1782.    * @param {!Function} o
  1783.    * @param {string} m
  1784.    * @return {?}
  1785.    */
  1786.   function debug$jscomp$0(o, m) {
  1787.     if (!is_undefined$jscomp$0(window.console) && !is_undefined$jscomp$0(window.console.log)) {
  1788.       if (is_object$jscomp$0(o)) {
  1789.         /** @type {string} */
  1790.         var resizewidth = " (" + o.selector + ")";
  1791.         o = o.debug;
  1792.       } else {
  1793.         /** @type {string} */
  1794.         resizewidth = "";
  1795.       }
  1796.       if (!o) {
  1797.         return false;
  1798.       }
  1799.       if (is_string$jscomp$0(m)) {
  1800.         /** @type {string} */
  1801.         m = "carouFredSel" + resizewidth + ": " + m;
  1802.       } else {
  1803.         /** @type {!Array} */
  1804.         m = ["carouFredSel" + resizewidth + ":", m];
  1805.       }
  1806.       window.console.log(m);
  1807.     }
  1808.     return false;
  1809.   }
  1810.   if ($$jscomp$0.fn.carouFredSel) {
  1811.     return;
  1812.   }
  1813.   /** @type {function(?, string): ?} */
  1814.   $$jscomp$0.fn.caroufredsel = $$jscomp$0.fn.carouFredSel = function(u$jscomp$0, w$jscomp$7) {
  1815.     if (this.length == 0) {
  1816.       debug$jscomp$0(true, 'No element found for "' + this.selector + '".');
  1817.       return this;
  1818.     }
  1819.     if (this.length > 1) {
  1820.       return this.each(function() {
  1821.         $$jscomp$0(this).carouFredSel(u$jscomp$0, w$jscomp$7);
  1822.       });
  1823.     }
  1824.     var y$jscomp$59 = this;
  1825.     var $tt0$jscomp$0 = this[0];
  1826.     /** @type {boolean} */
  1827.     var starting_position$jscomp$0 = false;
  1828.     if (y$jscomp$59.data("_cfs_isCarousel")) {
  1829.       starting_position$jscomp$0 = y$jscomp$59.triggerHandler("_cfs_triggerEvent", "currentPosition");
  1830.       y$jscomp$59.trigger("_cfs_triggerEvent", ["destroy", true]);
  1831.     }
  1832.     var z$jscomp$11 = {};
  1833.     /**
  1834.      * @param {!Object} options
  1835.      * @param {boolean} end
  1836.      * @param {string} height
  1837.      * @return {undefined}
  1838.      */
  1839.     z$jscomp$11._cfs_init = function(options, end, height) {
  1840.       options = go_getObject$jscomp$0($tt0$jscomp$0, options);
  1841.       options.items = go_getItemsObject$jscomp$0($tt0$jscomp$0, options.items);
  1842.       options.scroll = go_getScrollObject$jscomp$0($tt0$jscomp$0, options.scroll);
  1843.       options.auto = go_getAutoObject$jscomp$0($tt0$jscomp$0, options.auto);
  1844.       options.prev = go_getPrevNextObject$jscomp$0($tt0$jscomp$0, options.prev);
  1845.       options.next = go_getPrevNextObject$jscomp$0($tt0$jscomp$0, options.next);
  1846.       options.pagination = go_getPaginationObject$jscomp$0($tt0$jscomp$0, options.pagination);
  1847.       options.swipe = go_getSwipeObject$jscomp$0($tt0$jscomp$0, options.swipe);
  1848.       options.mousewheel = go_getMousewheelObject$jscomp$0($tt0$jscomp$0, options.mousewheel);
  1849.       if (end) {
  1850.         opts_orig$jscomp$0 = $$jscomp$0.extend(true, {}, $$jscomp$0.fn.carouFredSel.defaults, options);
  1851.       }
  1852.       opts$jscomp$0 = $$jscomp$0.extend(true, {}, $$jscomp$0.fn.carouFredSel.defaults, options);
  1853.       opts$jscomp$0.d = cf_getDimensions$jscomp$0(opts$jscomp$0);
  1854.       /** @type {string} */
  1855.       A$jscomp$0.direction = opts$jscomp$0.direction == "up" || opts$jscomp$0.direction == "left" ? "next" : "prev";
  1856.       var data = y$jscomp$59.children();
  1857.       var config = ms_getParentSize$jscomp$0($wrp$jscomp$0, opts$jscomp$0, "width");
  1858.       if (is_true$jscomp$0(opts$jscomp$0.cookie)) {
  1859.         /** @type {string} */
  1860.         opts$jscomp$0.cookie = "caroufredsel_cookie_" + conf$jscomp$0.serialNumber;
  1861.       }
  1862.       opts$jscomp$0.maxDimension = ms_getMaxDimension$jscomp$0(opts$jscomp$0, config);
  1863.       opts$jscomp$0.items = in_complementItems$jscomp$0(opts$jscomp$0.items, opts$jscomp$0, data, height);
  1864.       opts$jscomp$0[opts$jscomp$0.d["width"]] = in_complementPrimarySize$jscomp$0(opts$jscomp$0[opts$jscomp$0.d["width"]], opts$jscomp$0, data);
  1865.       opts$jscomp$0[opts$jscomp$0.d["height"]] = in_complementSecondarySize$jscomp$0(opts$jscomp$0[opts$jscomp$0.d["height"]], opts$jscomp$0, data);
  1866.       if (opts$jscomp$0.responsive) {
  1867.         if (!is_percentage$jscomp$0(opts$jscomp$0[opts$jscomp$0.d["width"]])) {
  1868.           /** @type {string} */
  1869.           opts$jscomp$0[opts$jscomp$0.d["width"]] = "100%";
  1870.         }
  1871.       }
  1872.       if (is_percentage$jscomp$0(opts$jscomp$0[opts$jscomp$0.d["width"]])) {
  1873.         /** @type {boolean} */
  1874.         A$jscomp$0.upDateOnWindowResize = true;
  1875.         A$jscomp$0.primarySizePercentage = opts$jscomp$0[opts$jscomp$0.d["width"]];
  1876.         opts$jscomp$0[opts$jscomp$0.d["width"]] = ms_getPercentage$jscomp$0(config, A$jscomp$0.primarySizePercentage);
  1877.         if (!opts$jscomp$0.items.visible) {
  1878.           /** @type {boolean} */
  1879.           opts$jscomp$0.items.visibleConf.variable = true;
  1880.         }
  1881.       }
  1882.       if (opts$jscomp$0.responsive) {
  1883.         /** @type {boolean} */
  1884.         opts$jscomp$0.usePadding = false;
  1885.         /** @type {!Array} */
  1886.         opts$jscomp$0.padding = [0, 0, 0, 0];
  1887.         /** @type {boolean} */
  1888.         opts$jscomp$0.align = false;
  1889.         /** @type {boolean} */
  1890.         opts$jscomp$0.items.visibleConf.variable = false;
  1891.       } else {
  1892.         if (!opts$jscomp$0.items.visible) {
  1893.           opts$jscomp$0 = in_complementVisibleItems$jscomp$0(opts$jscomp$0, config);
  1894.         }
  1895.         if (!opts$jscomp$0[opts$jscomp$0.d["width"]]) {
  1896.           if (!opts$jscomp$0.items.visibleConf.variable && is_number$jscomp$0(opts$jscomp$0.items[opts$jscomp$0.d["width"]]) && opts$jscomp$0.items.filter == "*") {
  1897.             /** @type {number} */
  1898.             opts$jscomp$0[opts$jscomp$0.d["width"]] = opts$jscomp$0.items.visible * opts$jscomp$0.items[opts$jscomp$0.d["width"]];
  1899.             /** @type {boolean} */
  1900.             opts$jscomp$0.align = false;
  1901.           } else {
  1902.             /** @type {string} */
  1903.             opts$jscomp$0[opts$jscomp$0.d["width"]] = "variable";
  1904.           }
  1905.         }
  1906.         if (is_undefined$jscomp$0(opts$jscomp$0.align)) {
  1907.           /** @type {(boolean|string)} */
  1908.           opts$jscomp$0.align = is_number$jscomp$0(opts$jscomp$0[opts$jscomp$0.d["width"]]) ? "center" : false;
  1909.         }
  1910.         if (opts$jscomp$0.items.visibleConf.variable) {
  1911.           opts$jscomp$0.items.visible = gn_getVisibleItemsNext$jscomp$0(data, opts$jscomp$0, 0);
  1912.         }
  1913.       }
  1914.       if (opts$jscomp$0.items.filter != "*" && !opts$jscomp$0.items.visibleConf.variable) {
  1915.         opts$jscomp$0.items.visibleConf.org = opts$jscomp$0.items.visible;
  1916.         opts$jscomp$0.items.visible = gn_getVisibleItemsNextFilter$jscomp$0(data, opts$jscomp$0, 0);
  1917.       }
  1918.       opts$jscomp$0.items.visible = cf_getItemsAdjust$jscomp$0(opts$jscomp$0.items.visible, opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  1919.       opts$jscomp$0.items.visibleConf.old = opts$jscomp$0.items.visible;
  1920.       if (opts$jscomp$0.responsive) {
  1921.         if (!opts$jscomp$0.items.visibleConf.min) {
  1922.           opts$jscomp$0.items.visibleConf.min = opts$jscomp$0.items.visible;
  1923.         }
  1924.         if (!opts$jscomp$0.items.visibleConf.max) {
  1925.           opts$jscomp$0.items.visibleConf.max = opts$jscomp$0.items.visible;
  1926.         }
  1927.         opts$jscomp$0 = in_getResponsiveValues$jscomp$0(opts$jscomp$0, data, config);
  1928.       } else {
  1929.         opts$jscomp$0.padding = cf_getPadding$jscomp$0(opts$jscomp$0.padding);
  1930.         if (opts$jscomp$0.align == "top") {
  1931.           /** @type {string} */
  1932.           opts$jscomp$0.align = "left";
  1933.         } else {
  1934.           if (opts$jscomp$0.align == "bottom") {
  1935.             /** @type {string} */
  1936.             opts$jscomp$0.align = "right";
  1937.           }
  1938.         }
  1939.         switch(opts$jscomp$0.align) {
  1940.           case "center":
  1941.           case "left":
  1942.           case "right":
  1943.             if (opts$jscomp$0[opts$jscomp$0.d["width"]] != "variable") {
  1944.               opts$jscomp$0 = in_getAlignPadding$jscomp$0(opts$jscomp$0, data);
  1945.               /** @type {boolean} */
  1946.               opts$jscomp$0.usePadding = true;
  1947.             }
  1948.             break;
  1949.           default:
  1950.             /** @type {boolean} */
  1951.             opts$jscomp$0.align = false;
  1952.             /** @type {boolean} */
  1953.             opts$jscomp$0.usePadding = opts$jscomp$0.padding[0] == 0 && opts$jscomp$0.padding[1] == 0 && opts$jscomp$0.padding[2] == 0 && opts$jscomp$0.padding[3] == 0 ? false : true;
  1954.             break;
  1955.         }
  1956.       }
  1957.       if (!is_number$jscomp$0(opts$jscomp$0.scroll.duration)) {
  1958.         /** @type {number} */
  1959.         opts$jscomp$0.scroll.duration = 500;
  1960.       }
  1961.       if (is_undefined$jscomp$0(opts$jscomp$0.scroll.items)) {
  1962.         opts$jscomp$0.scroll.items = opts$jscomp$0.responsive || opts$jscomp$0.items.visibleConf.variable || opts$jscomp$0.items.filter != "*" ? "visible" : opts$jscomp$0.items.visible;
  1963.       }
  1964.       opts$jscomp$0.auto = $$jscomp$0.extend(true, {}, opts$jscomp$0.scroll, opts$jscomp$0.auto);
  1965.       opts$jscomp$0.prev = $$jscomp$0.extend(true, {}, opts$jscomp$0.scroll, opts$jscomp$0.prev);
  1966.       opts$jscomp$0.next = $$jscomp$0.extend(true, {}, opts$jscomp$0.scroll, opts$jscomp$0.next);
  1967.       opts$jscomp$0.pagination = $$jscomp$0.extend(true, {}, opts$jscomp$0.scroll, opts$jscomp$0.pagination);
  1968.       opts$jscomp$0.auto = go_complementAutoObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.auto);
  1969.       opts$jscomp$0.prev = go_complementPrevNextObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.prev);
  1970.       opts$jscomp$0.next = go_complementPrevNextObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.next);
  1971.       opts$jscomp$0.pagination = go_complementPaginationObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.pagination);
  1972.       opts$jscomp$0.swipe = go_complementSwipeObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.swipe);
  1973.       opts$jscomp$0.mousewheel = go_complementMousewheelObject$jscomp$0($tt0$jscomp$0, opts$jscomp$0.mousewheel);
  1974.       if (opts$jscomp$0.synchronise) {
  1975.         opts$jscomp$0.synchronise = cf_getSynchArr$jscomp$0(opts$jscomp$0.synchronise);
  1976.       }
  1977.       if (opts$jscomp$0.auto.onPauseStart) {
  1978.         opts$jscomp$0.auto.onTimeoutStart = opts$jscomp$0.auto.onPauseStart;
  1979.         deprecated$jscomp$0("auto.onPauseStart", "auto.onTimeoutStart");
  1980.       }
  1981.       if (opts$jscomp$0.auto.onPausePause) {
  1982.         opts$jscomp$0.auto.onTimeoutPause = opts$jscomp$0.auto.onPausePause;
  1983.         deprecated$jscomp$0("auto.onPausePause", "auto.onTimeoutPause");
  1984.       }
  1985.       if (opts$jscomp$0.auto.onPauseEnd) {
  1986.         opts$jscomp$0.auto.onTimeoutEnd = opts$jscomp$0.auto.onPauseEnd;
  1987.         deprecated$jscomp$0("auto.onPauseEnd", "auto.onTimeoutEnd");
  1988.       }
  1989.       if (opts$jscomp$0.auto.pauseDuration) {
  1990.         opts$jscomp$0.auto.timeoutDuration = opts$jscomp$0.auto.pauseDuration;
  1991.         deprecated$jscomp$0("auto.pauseDuration", "auto.timeoutDuration");
  1992.       }
  1993.     };
  1994.     /**
  1995.      * @return {undefined}
  1996.      */
  1997.     z$jscomp$11._cfs_build = function() {
  1998.       y$jscomp$59.data("_cfs_isCarousel", true);
  1999.       var headers = y$jscomp$59.children();
  2000.       var a = in_mapCss$jscomp$0(y$jscomp$59, ["textAlign", "float", "position", "top", "right", "bottom", "left", "zIndex", "width", "height", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
  2001.       /** @type {string} */
  2002.       var currentposition = "relative";
  2003.       switch(a.position) {
  2004.         case "absolute":
  2005.         case "fixed":
  2006.           currentposition = a.position;
  2007.           break;
  2008.       }
  2009.       if (conf$jscomp$0.wrapper == "parent") {
  2010.         sz_storeOrigCss$jscomp$0($wrp$jscomp$0);
  2011.       } else {
  2012.         $wrp$jscomp$0.css(a);
  2013.       }
  2014.       $wrp$jscomp$0.css({
  2015.         "overflow" : "hidden",
  2016.         "position" : currentposition
  2017.       });
  2018.       sz_storeOrigCss$jscomp$0(y$jscomp$59);
  2019.       y$jscomp$59.data("_cfs_origCssZindex", a.zIndex);
  2020.       y$jscomp$59.css({
  2021.         "textAlign" : "left",
  2022.         "float" : "none",
  2023.         "position" : "absolute",
  2024.         "top" : 0,
  2025.         "right" : "auto",
  2026.         "bottom" : "auto",
  2027.         "left" : 0,
  2028.         "marginTop" : 0,
  2029.         "marginRight" : 0,
  2030.         "marginBottom" : 0,
  2031.         "marginLeft" : 0
  2032.       });
  2033.       sz_storeMargin$jscomp$0(headers, opts$jscomp$0);
  2034.       sz_storeOrigCss$jscomp$0(headers);
  2035.       if (opts$jscomp$0.responsive) {
  2036.         sz_setResponsiveSizes$jscomp$0(opts$jscomp$0, headers);
  2037.       }
  2038.     };
  2039.     /**
  2040.      * @return {undefined}
  2041.      */
  2042.     z$jscomp$11._cfs_bind_events = function() {
  2043.       z$jscomp$11._cfs_unbind_events();
  2044.       y$jscomp$59.bind(cf_e$jscomp$0("stop", conf$jscomp$0), function(event, ctx) {
  2045.         event.stopPropagation();
  2046.         if (!A$jscomp$0.isStopped) {
  2047.           if (opts$jscomp$0.auto.button) {
  2048.             opts$jscomp$0.auto.button.addClass(cf_c$jscomp$0("stopped", conf$jscomp$0));
  2049.           }
  2050.         }
  2051.         /** @type {boolean} */
  2052.         A$jscomp$0.isStopped = true;
  2053.         if (opts$jscomp$0.auto.play) {
  2054.           /** @type {boolean} */
  2055.           opts$jscomp$0.auto.play = false;
  2056.           y$jscomp$59.trigger(cf_e$jscomp$0("pause", conf$jscomp$0), ctx);
  2057.         }
  2058.         return true;
  2059.       });
  2060.       y$jscomp$59.bind(cf_e$jscomp$0("finish", conf$jscomp$0), function(event) {
  2061.         event.stopPropagation();
  2062.         if (A$jscomp$0.isScrolling) {
  2063.           sc_stopScroll$jscomp$0(scrl$jscomp$0);
  2064.         }
  2065.         return true;
  2066.       });
  2067.       y$jscomp$59.bind(cf_e$jscomp$0("pause", conf$jscomp$0), function(event, sp, b) {
  2068.         event.stopPropagation();
  2069.         tmrs$jscomp$0 = sc_clearTimers$jscomp$0(tmrs$jscomp$0);
  2070.         if (sp && A$jscomp$0.isScrolling) {
  2071.           /** @type {boolean} */
  2072.           scrl$jscomp$0.isStopped = true;
  2073.           /** @type {number} */
  2074.           var dif = getTime$jscomp$0() - scrl$jscomp$0.startTime;
  2075.           scrl$jscomp$0.duration -= dif;
  2076.           if (scrl$jscomp$0.pre) {
  2077.             scrl$jscomp$0.pre.duration -= dif;
  2078.           }
  2079.           if (scrl$jscomp$0.post) {
  2080.             scrl$jscomp$0.post.duration -= dif;
  2081.           }
  2082.           sc_stopScroll$jscomp$0(scrl$jscomp$0, false);
  2083.         }
  2084.         if (!A$jscomp$0.isPaused && !A$jscomp$0.isScrolling) {
  2085.           if (b) {
  2086.             tmrs$jscomp$0.timePassed += getTime$jscomp$0() - tmrs$jscomp$0.startTime;
  2087.           }
  2088.         }
  2089.         if (!A$jscomp$0.isPaused) {
  2090.           if (opts$jscomp$0.auto.button) {
  2091.             opts$jscomp$0.auto.button.addClass(cf_c$jscomp$0("paused", conf$jscomp$0));
  2092.           }
  2093.         }
  2094.         /** @type {boolean} */
  2095.         A$jscomp$0.isPaused = true;
  2096.         if (opts$jscomp$0.auto.onTimeoutPause) {
  2097.           /** @type {number} */
  2098.           var throw42 = opts$jscomp$0.auto.timeoutDuration - tmrs$jscomp$0.timePassed;
  2099.           /** @type {number} */
  2100.           var bubbled_sets__3355 = 100 - Math.ceil(throw42 * 100 / opts$jscomp$0.auto.timeoutDuration);
  2101.           opts$jscomp$0.auto.onTimeoutPause.call($tt0$jscomp$0, bubbled_sets__3355, throw42);
  2102.         }
  2103.         return true;
  2104.       });
  2105.       y$jscomp$59.bind(cf_e$jscomp$0("play", conf$jscomp$0), function(event, dir, b, r) {
  2106.         event.stopPropagation();
  2107.         tmrs$jscomp$0 = sc_clearTimers$jscomp$0(tmrs$jscomp$0);
  2108.         /** @type {!Array} */
  2109.         var out = [dir, b, r];
  2110.         /** @type {!Array} */
  2111.         var primitives = ["string", "number", "boolean"];
  2112.         var match = cf_sortParams$jscomp$0(out, primitives);
  2113.         dir = match[0];
  2114.         b = match[1];
  2115.         r = match[2];
  2116.         if (dir != "prev" && dir != "next") {
  2117.           /** @type {string} */
  2118.           dir = A$jscomp$0.direction;
  2119.         }
  2120.         if (!is_number$jscomp$0(b)) {
  2121.           /** @type {number} */
  2122.           b = 0;
  2123.         }
  2124.         if (!is_boolean$jscomp$0(r)) {
  2125.           /** @type {boolean} */
  2126.           r = false;
  2127.         }
  2128.         if (r) {
  2129.           /** @type {boolean} */
  2130.           A$jscomp$0.isStopped = false;
  2131.           /** @type {boolean} */
  2132.           opts$jscomp$0.auto.play = true;
  2133.         }
  2134.         if (!opts$jscomp$0.auto.play) {
  2135.           event.stopImmediatePropagation();
  2136.           return debug$jscomp$0(conf$jscomp$0, "Carousel stopped: Not scrolling.");
  2137.         }
  2138.         if (A$jscomp$0.isPaused) {
  2139.           if (opts$jscomp$0.auto.button) {
  2140.             opts$jscomp$0.auto.button.removeClass(cf_c$jscomp$0("stopped", conf$jscomp$0));
  2141.             opts$jscomp$0.auto.button.removeClass(cf_c$jscomp$0("paused", conf$jscomp$0));
  2142.           }
  2143.         }
  2144.         /** @type {boolean} */
  2145.         A$jscomp$0.isPaused = false;
  2146.         tmrs$jscomp$0.startTime = getTime$jscomp$0();
  2147.         var p = opts$jscomp$0.auto.timeoutDuration + b;
  2148.         /** @type {number} */
  2149.         dur2 = p - tmrs$jscomp$0.timePassed;
  2150.         /** @type {number} */
  2151.         perc = 100 - Math.ceil(dur2 * 100 / p);
  2152.         if (opts$jscomp$0.auto.progress) {
  2153.           /** @type {number} */
  2154.           tmrs$jscomp$0.progress = setInterval(function() {
  2155.             var r = getTime$jscomp$0() - tmrs$jscomp$0.startTime + tmrs$jscomp$0.timePassed;
  2156.             /** @type {number} */
  2157.             var bubbled_sets__3355 = Math.ceil(r * 100 / p);
  2158.             opts$jscomp$0.auto.progress.updater.call(opts$jscomp$0.auto.progress.bar[0], bubbled_sets__3355);
  2159.           }, opts$jscomp$0.auto.progress.interval);
  2160.         }
  2161.         /** @type {number} */
  2162.         tmrs$jscomp$0.auto = setTimeout(function() {
  2163.           if (opts$jscomp$0.auto.progress) {
  2164.             opts$jscomp$0.auto.progress.updater.call(opts$jscomp$0.auto.progress.bar[0], 100);
  2165.           }
  2166.           if (opts$jscomp$0.auto.onTimeoutEnd) {
  2167.             opts$jscomp$0.auto.onTimeoutEnd.call($tt0$jscomp$0, perc, dur2);
  2168.           }
  2169.           if (A$jscomp$0.isScrolling) {
  2170.             y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0), dir);
  2171.           } else {
  2172.             y$jscomp$59.trigger(cf_e$jscomp$0(dir, conf$jscomp$0), opts$jscomp$0.auto);
  2173.           }
  2174.         }, dur2);
  2175.         if (opts$jscomp$0.auto.onTimeoutStart) {
  2176.           opts$jscomp$0.auto.onTimeoutStart.call($tt0$jscomp$0, perc, dur2);
  2177.         }
  2178.         return true;
  2179.       });
  2180.       y$jscomp$59.bind(cf_e$jscomp$0("resume", conf$jscomp$0), function(event) {
  2181.         event.stopPropagation();
  2182.         if (scrl$jscomp$0.isStopped) {
  2183.           /** @type {boolean} */
  2184.           scrl$jscomp$0.isStopped = false;
  2185.           /** @type {boolean} */
  2186.           A$jscomp$0.isPaused = false;
  2187.           /** @type {boolean} */
  2188.           A$jscomp$0.isScrolling = true;
  2189.           scrl$jscomp$0.startTime = getTime$jscomp$0();
  2190.           sc_startScroll$jscomp$0(scrl$jscomp$0, conf$jscomp$0);
  2191.         } else {
  2192.           y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0));
  2193.         }
  2194.         return true;
  2195.       });
  2196.       y$jscomp$59.bind(cf_e$jscomp$0("prev", conf$jscomp$0) + " " + cf_e$jscomp$0("next", conf$jscomp$0), function(event, options, value, data, d) {
  2197.         event.stopPropagation();
  2198.         if (A$jscomp$0.isStopped || y$jscomp$59.is(":hidden")) {
  2199.           event.stopImmediatePropagation();
  2200.           return debug$jscomp$0(conf$jscomp$0, "Carousel stopped or hidden: Not scrolling.");
  2201.         }
  2202.         var page = is_number$jscomp$0(opts$jscomp$0.items.minimum) ? opts$jscomp$0.items.minimum : opts$jscomp$0.items.visible + 1;
  2203.         if (page > itms$jscomp$0.total) {
  2204.           event.stopImmediatePropagation();
  2205.           return debug$jscomp$0(conf$jscomp$0, "Not enough items (" + itms$jscomp$0.total + " total, " + page + " needed): Not scrolling.");
  2206.         }
  2207.         /** @type {!Array} */
  2208.         var args = [options, value, data, d];
  2209.         /** @type {!Array} */
  2210.         var basicTypes = ["object", "number/string", "function", "boolean"];
  2211.         var a = cf_sortParams$jscomp$0(args, basicTypes);
  2212.         options = a[0];
  2213.         value = a[1];
  2214.         data = a[2];
  2215.         d = a[3];
  2216.         var key = event.type.slice(conf$jscomp$0.events.prefix.length);
  2217.         if (!is_object$jscomp$0(options)) {
  2218.           options = {};
  2219.         }
  2220.         if (is_function$jscomp$0(data)) {
  2221.           /** @type {!Function} */
  2222.           options.onAfter = data;
  2223.         }
  2224.         if (is_boolean$jscomp$0(d)) {
  2225.           /** @type {string} */
  2226.           options.queue = d;
  2227.         }
  2228.         options = $$jscomp$0.extend(true, {}, opts$jscomp$0[key], options);
  2229.         if (options.conditions && !options.conditions.call($tt0$jscomp$0, key)) {
  2230.           event.stopImmediatePropagation();
  2231.           return debug$jscomp$0(conf$jscomp$0, 'Callback "conditions" returned false.');
  2232.         }
  2233.         if (!is_number$jscomp$0(value)) {
  2234.           if (opts$jscomp$0.items.filter != "*") {
  2235.             /** @type {string} */
  2236.             value = "visible";
  2237.           } else {
  2238.             /** @type {!Array} */
  2239.             var params = [value, options.items, opts$jscomp$0[key].items];
  2240.             /** @type {number} */
  2241.             a = 0;
  2242.             /** @type {number} */
  2243.             var c = params.length;
  2244.             for (; a < c; a++) {
  2245.               if (is_number$jscomp$0(params[a]) || params[a] == "page" || params[a] == "visible") {
  2246.                 value = params[a];
  2247.                 break;
  2248.               }
  2249.             }
  2250.           }
  2251.           switch(value) {
  2252.             case "page":
  2253.               event.stopImmediatePropagation();
  2254.               return y$jscomp$59.triggerHandler(cf_e$jscomp$0(key + "Page", conf$jscomp$0), [options, data]);
  2255.               break;
  2256.             case "visible":
  2257.               if (!opts$jscomp$0.items.visibleConf.variable && opts$jscomp$0.items.filter == "*") {
  2258.                 value = opts$jscomp$0.items.visible;
  2259.               }
  2260.               break;
  2261.           }
  2262.         }
  2263.         if (scrl$jscomp$0.isStopped) {
  2264.           y$jscomp$59.trigger(cf_e$jscomp$0("resume", conf$jscomp$0));
  2265.           y$jscomp$59.trigger(cf_e$jscomp$0("queue", conf$jscomp$0), [key, [options, value, data]]);
  2266.           event.stopImmediatePropagation();
  2267.           return debug$jscomp$0(conf$jscomp$0, "Carousel resumed scrolling.");
  2268.         }
  2269.         if (options.duration > 0) {
  2270.           if (A$jscomp$0.isScrolling) {
  2271.             if (options.queue) {
  2272.               if (options.queue == "last") {
  2273.                 /** @type {!Array} */
  2274.                 queu$jscomp$0 = [];
  2275.               }
  2276.               if (options.queue != "first" || queu$jscomp$0.length == 0) {
  2277.                 y$jscomp$59.trigger(cf_e$jscomp$0("queue", conf$jscomp$0), [key, [options, value, data]]);
  2278.               }
  2279.             }
  2280.             event.stopImmediatePropagation();
  2281.             return debug$jscomp$0(conf$jscomp$0, "Carousel currently scrolling.");
  2282.           }
  2283.         }
  2284.         /** @type {number} */
  2285.         tmrs$jscomp$0.timePassed = 0;
  2286.         y$jscomp$59.trigger(cf_e$jscomp$0("slide_" + key, conf$jscomp$0), [options, value]);
  2287.         if (opts$jscomp$0.synchronise) {
  2288.           var s = opts$jscomp$0.synchronise;
  2289.           /** @type {!Array} */
  2290.           var args = [options, value];
  2291.           /** @type {number} */
  2292.           var j = 0;
  2293.           c = s.length;
  2294.           for (; j < c; j++) {
  2295.             var direction = key;
  2296.             if (!s[j][2]) {
  2297.               /** @type {string} */
  2298.               direction = direction == "prev" ? "next" : "prev";
  2299.             }
  2300.             if (!s[j][1]) {
  2301.               args[0] = s[j][0].triggerHandler("_cfs_triggerEvent", ["configuration", direction]);
  2302.             }
  2303.             args[1] = value + s[j][3];
  2304.             s[j][0].trigger("_cfs_triggerEvent", ["slide_" + direction, args]);
  2305.           }
  2306.         }
  2307.         return true;
  2308.       });
  2309.       y$jscomp$59.bind(cf_e$jscomp$0("slide_prev", conf$jscomp$0), function(event, config, i) {
  2310.         event.stopPropagation();
  2311.         var el = y$jscomp$59.children();
  2312.         if (!opts$jscomp$0.circular) {
  2313.           if (itms$jscomp$0.first == 0) {
  2314.             if (opts$jscomp$0.infinite) {
  2315.               y$jscomp$59.trigger(cf_e$jscomp$0("next", conf$jscomp$0), itms$jscomp$0.total - 1);
  2316.             }
  2317.             return event.stopImmediatePropagation();
  2318.           }
  2319.         }
  2320.         sz_resetMargin$jscomp$0(el, opts$jscomp$0);
  2321.         if (!is_number$jscomp$0(i)) {
  2322.           if (opts$jscomp$0.items.visibleConf.variable) {
  2323.             i = gn_getVisibleItemsPrev$jscomp$0(el, opts$jscomp$0, itms$jscomp$0.total - 1);
  2324.           } else {
  2325.             if (opts$jscomp$0.items.filter != "*") {
  2326.               var alwaysDownload = is_number$jscomp$0(config.items) ? config.items : gn_getVisibleOrg$jscomp$0(y$jscomp$59, opts$jscomp$0);
  2327.               i = gn_getScrollItemsPrevFilter$jscomp$0(el, opts$jscomp$0, itms$jscomp$0.total - 1, alwaysDownload);
  2328.             } else {
  2329.               i = opts$jscomp$0.items.visible;
  2330.             }
  2331.           }
  2332.           i = cf_getAdjust$jscomp$0(i, opts$jscomp$0, config.items, $tt0$jscomp$0);
  2333.         }
  2334.         if (!opts$jscomp$0.circular) {
  2335.           if (itms$jscomp$0.total - i < itms$jscomp$0.first) {
  2336.             /** @type {number} */
  2337.             i = itms$jscomp$0.total - itms$jscomp$0.first;
  2338.           }
  2339.         }
  2340.         opts$jscomp$0.items.visibleConf.old = opts$jscomp$0.items.visible;
  2341.         if (opts$jscomp$0.items.visibleConf.variable) {
  2342.           var data = cf_getItemsAdjust$jscomp$0(gn_getVisibleItemsNext$jscomp$0(el, opts$jscomp$0, itms$jscomp$0.total - i), opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2343.           if (opts$jscomp$0.items.visible + i <= data && i < itms$jscomp$0.total) {
  2344.             i++;
  2345.             data = cf_getItemsAdjust$jscomp$0(gn_getVisibleItemsNext$jscomp$0(el, opts$jscomp$0, itms$jscomp$0.total - i), opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2346.           }
  2347.           opts$jscomp$0.items.visible = data;
  2348.         } else {
  2349.           if (opts$jscomp$0.items.filter != "*") {
  2350.             data = gn_getVisibleItemsNextFilter$jscomp$0(el, opts$jscomp$0, itms$jscomp$0.total - i);
  2351.             opts$jscomp$0.items.visible = cf_getItemsAdjust$jscomp$0(data, opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2352.           }
  2353.         }
  2354.         sz_resetMargin$jscomp$0(el, opts$jscomp$0, true);
  2355.         if (i == 0) {
  2356.           event.stopImmediatePropagation();
  2357.           return debug$jscomp$0(conf$jscomp$0, "0 items to scroll: Not scrolling.");
  2358.         }
  2359.         debug$jscomp$0(conf$jscomp$0, "Scrolling " + i + " items backward.");
  2360.         itms$jscomp$0.first += i;
  2361.         for (; itms$jscomp$0.first >= itms$jscomp$0.total;) {
  2362.           itms$jscomp$0.first -= itms$jscomp$0.total;
  2363.         }
  2364.         if (!opts$jscomp$0.circular) {
  2365.           if (itms$jscomp$0.first == 0 && config.onEnd) {
  2366.             config.onEnd.call($tt0$jscomp$0, "prev");
  2367.           }
  2368.           if (!opts$jscomp$0.infinite) {
  2369.             nv_enableNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.first, conf$jscomp$0);
  2370.           }
  2371.         }
  2372.         y$jscomp$59.children().slice(itms$jscomp$0.total - i, itms$jscomp$0.total).prependTo(y$jscomp$59);
  2373.         if (itms$jscomp$0.total < opts$jscomp$0.items.visible + i) {
  2374.           y$jscomp$59.children().slice(0, opts$jscomp$0.items.visible + i - itms$jscomp$0.total).clone(true).appendTo(y$jscomp$59);
  2375.         }
  2376.         el = y$jscomp$59.children();
  2377.         var field = gi_getOldItemsPrev$jscomp$0(el, opts$jscomp$0, i);
  2378.         var r = gi_getNewItemsPrev$jscomp$0(el, opts$jscomp$0);
  2379.         var object = el.eq(i - 1);
  2380.         var $calEvent = field.last();
  2381.         var node = r.last();
  2382.         sz_resetMargin$jscomp$0(el, opts$jscomp$0);
  2383.         /** @type {number} */
  2384.         var second_axis_symb = 0;
  2385.         /** @type {number} */
  2386.         var second_axis_magfact = 0;
  2387.         if (opts$jscomp$0.align) {
  2388.           var dummy = cf_getAlignPadding$jscomp$0(r, opts$jscomp$0);
  2389.           second_axis_symb = dummy[0];
  2390.           second_axis_magfact = dummy[1];
  2391.         }
  2392.         var subsize = second_axis_symb < 0 ? opts$jscomp$0.padding[opts$jscomp$0.d[3]] : 0;
  2393.         /** @type {boolean} */
  2394.         var values3 = false;
  2395.         var x = $$jscomp$0();
  2396.         if (opts$jscomp$0.items.visible < i) {
  2397.           x = el.slice(opts$jscomp$0.items.visibleConf.old, i);
  2398.           if (config.fx == "directscroll") {
  2399.             var k = opts$jscomp$0.items[opts$jscomp$0.d["width"]];
  2400.             values3 = x;
  2401.             object = node;
  2402.             sc_hideHiddenItems$jscomp$0(values3);
  2403.             /** @type {string} */
  2404.             opts$jscomp$0.items[opts$jscomp$0.d["width"]] = "variable";
  2405.           }
  2406.         }
  2407.         /** @type {boolean} */
  2408.         var l = false;
  2409.         var data = ms_getTotalSize$jscomp$0(el.slice(0, i), opts$jscomp$0, "width");
  2410.         var options = cf_mapWrapperSizes$jscomp$0(ms_getSizes$jscomp$0(r, opts$jscomp$0, true), opts$jscomp$0, !opts$jscomp$0.usePadding);
  2411.         /** @type {number} */
  2412.         var str = 0;
  2413.         var val = {};
  2414.         var processedOptions = {};
  2415.         var value = {};
  2416.         var $dims = {};
  2417.         var interceptorFactorySpy = {};
  2418.         var B = {};
  2419.         var map = {};
  2420.         var name = sc_getDuration$jscomp$0(config, opts$jscomp$0, i, data);
  2421.         switch(config.fx) {
  2422.           case "cover":
  2423.           case "cover-fade":
  2424.             str = ms_getTotalSize$jscomp$0(el.slice(0, opts$jscomp$0.items.visible), opts$jscomp$0, "width");
  2425.             break;
  2426.         }
  2427.         if (values3) {
  2428.           opts$jscomp$0.items[opts$jscomp$0.d["width"]] = k;
  2429.         }
  2430.         sz_resetMargin$jscomp$0(el, opts$jscomp$0, true);
  2431.         if (second_axis_magfact >= 0) {
  2432.           sz_resetMargin$jscomp$0($calEvent, opts$jscomp$0, opts$jscomp$0.padding[opts$jscomp$0.d[1]]);
  2433.         }
  2434.         if (second_axis_symb >= 0) {
  2435.           sz_resetMargin$jscomp$0(object, opts$jscomp$0, opts$jscomp$0.padding[opts$jscomp$0.d[3]]);
  2436.         }
  2437.         if (opts$jscomp$0.align) {
  2438.           opts$jscomp$0.padding[opts$jscomp$0.d[1]] = second_axis_magfact;
  2439.           opts$jscomp$0.padding[opts$jscomp$0.d[3]] = second_axis_symb;
  2440.         }
  2441.         /** @type {number} */
  2442.         B[opts$jscomp$0.d["left"]] = -(data - subsize);
  2443.         /** @type {number} */
  2444.         map[opts$jscomp$0.d["left"]] = -(str - subsize);
  2445.         processedOptions[opts$jscomp$0.d["left"]] = options[opts$jscomp$0.d["width"]];
  2446.         /**
  2447.          * @return {undefined}
  2448.          */
  2449.         var setCircleSize = function() {
  2450.         };
  2451.         /**
  2452.          * @return {undefined}
  2453.          */
  2454.         var blendingSource = function() {
  2455.         };
  2456.         /**
  2457.          * @return {undefined}
  2458.          */
  2459.         var uiCleanupFunc = function() {
  2460.         };
  2461.         /**
  2462.          * @return {undefined}
  2463.          */
  2464.         var triggerListeners_ = function() {
  2465.         };
  2466.         /**
  2467.          * @return {undefined}
  2468.          */
  2469.         var transformCircle = function() {
  2470.         };
  2471.         /**
  2472.          * @return {undefined}
  2473.          */
  2474.         var animate = function() {
  2475.         };
  2476.         /**
  2477.          * @return {undefined}
  2478.          */
  2479.         var updateHighlightColor = function() {
  2480.         };
  2481.         /**
  2482.          * @return {undefined}
  2483.          */
  2484.         var calculateOfflineData = function() {
  2485.         };
  2486.         /**
  2487.          * @return {undefined}
  2488.          */
  2489.         var play = function() {
  2490.         };
  2491.         /**
  2492.          * @return {undefined}
  2493.          */
  2494.         var init = function() {
  2495.         };
  2496.         /**
  2497.          * @return {undefined}
  2498.          */
  2499.         var change_it = function() {
  2500.         };
  2501.         switch(config.fx) {
  2502.           case "crossfade":
  2503.           case "cover":
  2504.           case "cover-fade":
  2505.           case "uncover":
  2506.           case "uncover-fade":
  2507.             l = y$jscomp$59.clone(true).appendTo($wrp$jscomp$0);
  2508.             break;
  2509.         }
  2510.         switch(config.fx) {
  2511.           case "crossfade":
  2512.           case "uncover":
  2513.           case "uncover-fade":
  2514.             l.children().slice(0, i).remove();
  2515.             l.children().slice(opts$jscomp$0.items.visibleConf.old).remove();
  2516.             break;
  2517.           case "cover":
  2518.           case "cover-fade":
  2519.             l.children().slice(opts$jscomp$0.items.visible).remove();
  2520.             l.css(map);
  2521.             break;
  2522.         }
  2523.         y$jscomp$59.css(B);
  2524.         scrl$jscomp$0 = sc_setScroll$jscomp$0(name, config.easing, conf$jscomp$0);
  2525.         val[opts$jscomp$0.d["left"]] = opts$jscomp$0.usePadding ? opts$jscomp$0.padding[opts$jscomp$0.d[3]] : 0;
  2526.         if (opts$jscomp$0[opts$jscomp$0.d["width"]] == "variable" || opts$jscomp$0[opts$jscomp$0.d["height"]] == "variable") {
  2527.           /**
  2528.            * @return {undefined}
  2529.            */
  2530.           setCircleSize = function() {
  2531.             $wrp$jscomp$0.css(options);
  2532.           };
  2533.           /**
  2534.            * @return {undefined}
  2535.            */
  2536.           blendingSource = function() {
  2537.             scrl$jscomp$0.anims.push([$wrp$jscomp$0, options]);
  2538.           };
  2539.         }
  2540.         if (opts$jscomp$0.usePadding) {
  2541.           if (node.not(object).length) {
  2542.             value[opts$jscomp$0.d["marginRight"]] = object.data("_cfs_origCssMargin");
  2543.             if (second_axis_symb < 0) {
  2544.               object.css(value);
  2545.             } else {
  2546.               /**
  2547.                * @return {undefined}
  2548.                */
  2549.               updateHighlightColor = function() {
  2550.                 object.css(value);
  2551.               };
  2552.               /**
  2553.                * @return {undefined}
  2554.                */
  2555.               calculateOfflineData = function() {
  2556.                 scrl$jscomp$0.anims.push([object, value]);
  2557.               };
  2558.             }
  2559.           }
  2560.           switch(config.fx) {
  2561.             case "cover":
  2562.             case "cover-fade":
  2563.               l.children().eq(i - 1).css(value);
  2564.               break;
  2565.           }
  2566.           if (node.not($calEvent).length) {
  2567.             $dims[opts$jscomp$0.d["marginRight"]] = $calEvent.data("_cfs_origCssMargin");
  2568.             /**
  2569.              * @return {undefined}
  2570.              */
  2571.             uiCleanupFunc = function() {
  2572.               $calEvent.css($dims);
  2573.             };
  2574.             /**
  2575.              * @return {undefined}
  2576.              */
  2577.             triggerListeners_ = function() {
  2578.               scrl$jscomp$0.anims.push([$calEvent, $dims]);
  2579.             };
  2580.           }
  2581.           if (second_axis_magfact >= 0) {
  2582.             interceptorFactorySpy[opts$jscomp$0.d["marginRight"]] = node.data("_cfs_origCssMargin") + opts$jscomp$0.padding[opts$jscomp$0.d[1]];
  2583.             /**
  2584.              * @return {undefined}
  2585.              */
  2586.             transformCircle = function() {
  2587.               node.css(interceptorFactorySpy);
  2588.             };
  2589.             /**
  2590.              * @return {undefined}
  2591.              */
  2592.             animate = function() {
  2593.               scrl$jscomp$0.anims.push([node, interceptorFactorySpy]);
  2594.             };
  2595.           }
  2596.         }
  2597.         /**
  2598.          * @return {undefined}
  2599.          */
  2600.         change_it = function() {
  2601.           y$jscomp$59.css(val);
  2602.         };
  2603.         /** @type {number} */
  2604.         var nbCrumbs = opts$jscomp$0.items.visible + i - itms$jscomp$0.total;
  2605.         /**
  2606.          * @return {undefined}
  2607.          */
  2608.         init = function() {
  2609.           if (nbCrumbs > 0) {
  2610.             y$jscomp$59.children().slice(itms$jscomp$0.total).remove();
  2611.             field = $$jscomp$0(y$jscomp$59.children().slice(itms$jscomp$0.total - (opts$jscomp$0.items.visible - nbCrumbs)).get().concat(y$jscomp$59.children().slice(0, nbCrumbs).get()));
  2612.           }
  2613.           sc_showHiddenItems$jscomp$0(values3);
  2614.           if (opts$jscomp$0.usePadding) {
  2615.             var paddingHandleBottom = y$jscomp$59.children().eq(opts$jscomp$0.items.visible + i - 1);
  2616.             paddingHandleBottom.css(opts$jscomp$0.d["marginRight"], paddingHandleBottom.data("_cfs_origCssMargin"));
  2617.           }
  2618.         };
  2619.         var p = sc_mapCallbackArguments$jscomp$0(field, x, r, i, "prev", name, options);
  2620.         /**
  2621.          * @return {undefined}
  2622.          */
  2623.         play = function() {
  2624.           sc_afterScroll$jscomp$0(y$jscomp$59, l, config);
  2625.           /** @type {boolean} */
  2626.           A$jscomp$0.isScrolling = false;
  2627.           clbk$jscomp$0.onAfter = sc_fireCallbacks$jscomp$0($tt0$jscomp$0, config, "onAfter", p, clbk$jscomp$0);
  2628.           queu$jscomp$0 = sc_fireQueue$jscomp$0(y$jscomp$59, queu$jscomp$0, conf$jscomp$0);
  2629.           if (!A$jscomp$0.isPaused) {
  2630.             y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0));
  2631.           }
  2632.         };
  2633.         /** @type {boolean} */
  2634.         A$jscomp$0.isScrolling = true;
  2635.         tmrs$jscomp$0 = sc_clearTimers$jscomp$0(tmrs$jscomp$0);
  2636.         clbk$jscomp$0.onBefore = sc_fireCallbacks$jscomp$0($tt0$jscomp$0, config, "onBefore", p, clbk$jscomp$0);
  2637.         switch(config.fx) {
  2638.           case "none":
  2639.             y$jscomp$59.css(val);
  2640.             setCircleSize();
  2641.             uiCleanupFunc();
  2642.             transformCircle();
  2643.             updateHighlightColor();
  2644.             change_it();
  2645.             init();
  2646.             play();
  2647.             break;
  2648.           case "fade":
  2649.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  2650.               "opacity" : 0
  2651.             }, function() {
  2652.               setCircleSize();
  2653.               uiCleanupFunc();
  2654.               transformCircle();
  2655.               updateHighlightColor();
  2656.               change_it();
  2657.               init();
  2658.               scrl$jscomp$0 = sc_setScroll$jscomp$0(name, config.easing, conf$jscomp$0);
  2659.               scrl$jscomp$0.anims.push([y$jscomp$59, {
  2660.                 "opacity" : 1
  2661.               }, play]);
  2662.               sc_startScroll$jscomp$0(scrl$jscomp$0, conf$jscomp$0);
  2663.             }]);
  2664.             break;
  2665.           case "crossfade":
  2666.             y$jscomp$59.css({
  2667.               "opacity" : 0
  2668.             });
  2669.             scrl$jscomp$0.anims.push([l, {
  2670.               "opacity" : 0
  2671.             }]);
  2672.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  2673.               "opacity" : 1
  2674.             }, play]);
  2675.             blendingSource();
  2676.             uiCleanupFunc();
  2677.             transformCircle();
  2678.             updateHighlightColor();
  2679.             change_it();
  2680.             init();
  2681.             break;
  2682.           case "cover":
  2683.             scrl$jscomp$0.anims.push([l, val, function() {
  2684.               uiCleanupFunc();
  2685.               transformCircle();
  2686.               updateHighlightColor();
  2687.               change_it();
  2688.               init();
  2689.               play();
  2690.             }]);
  2691.             blendingSource();
  2692.             break;
  2693.           case "cover-fade":
  2694.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  2695.               "opacity" : 0
  2696.             }]);
  2697.             scrl$jscomp$0.anims.push([l, val, function() {
  2698.               y$jscomp$59.css({
  2699.                 "opacity" : 1
  2700.               });
  2701.               uiCleanupFunc();
  2702.               transformCircle();
  2703.               updateHighlightColor();
  2704.               change_it();
  2705.               init();
  2706.               play();
  2707.             }]);
  2708.             blendingSource();
  2709.             break;
  2710.           case "uncover":
  2711.             scrl$jscomp$0.anims.push([l, processedOptions, play]);
  2712.             blendingSource();
  2713.             uiCleanupFunc();
  2714.             transformCircle();
  2715.             updateHighlightColor();
  2716.             change_it();
  2717.             init();
  2718.             break;
  2719.           case "uncover-fade":
  2720.             y$jscomp$59.css({
  2721.               "opacity" : 0
  2722.             });
  2723.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  2724.               "opacity" : 1
  2725.             }]);
  2726.             scrl$jscomp$0.anims.push([l, processedOptions, play]);
  2727.             blendingSource();
  2728.             uiCleanupFunc();
  2729.             transformCircle();
  2730.             updateHighlightColor();
  2731.             change_it();
  2732.             init();
  2733.             break;
  2734.           default:
  2735.             scrl$jscomp$0.anims.push([y$jscomp$59, val, function() {
  2736.               init();
  2737.               play();
  2738.             }]);
  2739.             blendingSource();
  2740.             triggerListeners_();
  2741.             animate();
  2742.             calculateOfflineData();
  2743.             break;
  2744.         }
  2745.         sc_startScroll$jscomp$0(scrl$jscomp$0, conf$jscomp$0);
  2746.         cf_setCookie$jscomp$0(opts$jscomp$0.cookie, y$jscomp$59, conf$jscomp$0);
  2747.         y$jscomp$59.trigger(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), [false, options]);
  2748.         return true;
  2749.       });
  2750.       y$jscomp$59.bind(cf_e$jscomp$0("slide_next", conf$jscomp$0), function(event, options, i) {
  2751.         event.stopPropagation();
  2752.         var el = y$jscomp$59.children();
  2753.         if (!opts$jscomp$0.circular) {
  2754.           if (itms$jscomp$0.first == opts$jscomp$0.items.visible) {
  2755.             if (opts$jscomp$0.infinite) {
  2756.               y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0), itms$jscomp$0.total - 1);
  2757.             }
  2758.             return event.stopImmediatePropagation();
  2759.           }
  2760.         }
  2761.         sz_resetMargin$jscomp$0(el, opts$jscomp$0);
  2762.         if (!is_number$jscomp$0(i)) {
  2763.           if (opts$jscomp$0.items.filter != "*") {
  2764.             var s = is_number$jscomp$0(options.items) ? options.items : gn_getVisibleOrg$jscomp$0(y$jscomp$59, opts$jscomp$0);
  2765.             i = gn_getScrollItemsNextFilter$jscomp$0(el, opts$jscomp$0, 0, s);
  2766.           } else {
  2767.             i = opts$jscomp$0.items.visible;
  2768.           }
  2769.           i = cf_getAdjust$jscomp$0(i, opts$jscomp$0, options.items, $tt0$jscomp$0);
  2770.         }
  2771.         var m = itms$jscomp$0.first == 0 ? itms$jscomp$0.total : itms$jscomp$0.first;
  2772.         if (!opts$jscomp$0.circular) {
  2773.           if (opts$jscomp$0.items.visibleConf.variable) {
  2774.             var v = gn_getVisibleItemsNext$jscomp$0(el, opts$jscomp$0, i);
  2775.             s = gn_getVisibleItemsPrev$jscomp$0(el, opts$jscomp$0, m - 1);
  2776.           } else {
  2777.             v = opts$jscomp$0.items.visible;
  2778.             s = opts$jscomp$0.items.visible;
  2779.           }
  2780.           if (i + v > m) {
  2781.             /** @type {number} */
  2782.             i = m - s;
  2783.           }
  2784.         }
  2785.         opts$jscomp$0.items.visibleConf.old = opts$jscomp$0.items.visible;
  2786.         if (opts$jscomp$0.items.visibleConf.variable) {
  2787.           v = cf_getItemsAdjust$jscomp$0(gn_getVisibleItemsNextTestCircular$jscomp$0(el, opts$jscomp$0, i, m), opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2788.           for (; opts$jscomp$0.items.visible - i >= v && i < itms$jscomp$0.total;) {
  2789.             i++;
  2790.             v = cf_getItemsAdjust$jscomp$0(gn_getVisibleItemsNextTestCircular$jscomp$0(el, opts$jscomp$0, i, m), opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2791.           }
  2792.           opts$jscomp$0.items.visible = v;
  2793.         } else {
  2794.           if (opts$jscomp$0.items.filter != "*") {
  2795.             v = gn_getVisibleItemsNextFilter$jscomp$0(el, opts$jscomp$0, i);
  2796.             opts$jscomp$0.items.visible = cf_getItemsAdjust$jscomp$0(v, opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  2797.           }
  2798.         }
  2799.         sz_resetMargin$jscomp$0(el, opts$jscomp$0, true);
  2800.         if (i == 0) {
  2801.           event.stopImmediatePropagation();
  2802.           return debug$jscomp$0(conf$jscomp$0, "0 items to scroll: Not scrolling.");
  2803.         }
  2804.         debug$jscomp$0(conf$jscomp$0, "Scrolling " + i + " items forward.");
  2805.         itms$jscomp$0.first -= i;
  2806.         for (; itms$jscomp$0.first < 0;) {
  2807.           itms$jscomp$0.first += itms$jscomp$0.total;
  2808.         }
  2809.         if (!opts$jscomp$0.circular) {
  2810.           if (itms$jscomp$0.first == opts$jscomp$0.items.visible && options.onEnd) {
  2811.             options.onEnd.call($tt0$jscomp$0, "next");
  2812.           }
  2813.           if (!opts$jscomp$0.infinite) {
  2814.             nv_enableNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.first, conf$jscomp$0);
  2815.           }
  2816.         }
  2817.         if (itms$jscomp$0.total < opts$jscomp$0.items.visible + i) {
  2818.           y$jscomp$59.children().slice(0, opts$jscomp$0.items.visible + i - itms$jscomp$0.total).clone(true).appendTo(y$jscomp$59);
  2819.         }
  2820.         el = y$jscomp$59.children();
  2821.         var n = gi_getOldItemsNext$jscomp$0(el, opts$jscomp$0);
  2822.         var res = gi_getNewItemsNext$jscomp$0(el, opts$jscomp$0, i);
  2823.         var $results = el.eq(i - 1);
  2824.         var $item = n.last();
  2825.         var button = res.last();
  2826.         sz_resetMargin$jscomp$0(el, opts$jscomp$0);
  2827.         /** @type {number} */
  2828.         var h = 0;
  2829.         /** @type {number} */
  2830.         var lasty = 0;
  2831.         if (opts$jscomp$0.align) {
  2832.           var p = cf_getAlignPadding$jscomp$0(res, opts$jscomp$0);
  2833.           h = p[0];
  2834.           lasty = p[1];
  2835.         }
  2836.         /** @type {boolean} */
  2837.         var transformProperty = false;
  2838.         var e = $$jscomp$0();
  2839.         if (opts$jscomp$0.items.visibleConf.old < i) {
  2840.           e = el.slice(opts$jscomp$0.items.visibleConf.old, i);
  2841.           if (options.fx == "directscroll") {
  2842.             var l = opts$jscomp$0.items[opts$jscomp$0.d["width"]];
  2843.             transformProperty = e;
  2844.             $results = $item;
  2845.             sc_hideHiddenItems$jscomp$0(transformProperty);
  2846.             /** @type {string} */
  2847.             opts$jscomp$0.items[opts$jscomp$0.d["width"]] = "variable";
  2848.           }
  2849.         }
  2850.         /** @type {boolean} */
  2851.         var t = false;
  2852.         var position = ms_getTotalSize$jscomp$0(el.slice(0, i), opts$jscomp$0, "width");
  2853.         var arg1 = cf_mapWrapperSizes$jscomp$0(ms_getSizes$jscomp$0(res, opts$jscomp$0, true), opts$jscomp$0, !opts$jscomp$0.usePadding);
  2854.         /** @type {number} */
  2855.         var value = 0;
  2856.         var z = {};
  2857.         var fields = {};
  2858.         var top = {};
  2859.         var itemCSS = {};
  2860.         var p = {};
  2861.         var result = sc_getDuration$jscomp$0(options, opts$jscomp$0, i, position);
  2862.         switch(options.fx) {
  2863.           case "uncover":
  2864.           case "uncover-fade":
  2865.             value = ms_getTotalSize$jscomp$0(el.slice(0, opts$jscomp$0.items.visibleConf.old), opts$jscomp$0, "width");
  2866.             break;
  2867.         }
  2868.         if (transformProperty) {
  2869.           opts$jscomp$0.items[opts$jscomp$0.d["width"]] = l;
  2870.         }
  2871.         if (opts$jscomp$0.align) {
  2872.           if (opts$jscomp$0.padding[opts$jscomp$0.d[1]] < 0) {
  2873.             /** @type {number} */
  2874.             opts$jscomp$0.padding[opts$jscomp$0.d[1]] = 0;
  2875.           }
  2876.         }
  2877.         sz_resetMargin$jscomp$0(el, opts$jscomp$0, true);
  2878.         sz_resetMargin$jscomp$0($item, opts$jscomp$0, opts$jscomp$0.padding[opts$jscomp$0.d[1]]);
  2879.         if (opts$jscomp$0.align) {
  2880.           opts$jscomp$0.padding[opts$jscomp$0.d[1]] = lasty;
  2881.           opts$jscomp$0.padding[opts$jscomp$0.d[3]] = h;
  2882.         }
  2883.         p[opts$jscomp$0.d["left"]] = opts$jscomp$0.usePadding ? opts$jscomp$0.padding[opts$jscomp$0.d[3]] : 0;
  2884.         /**
  2885.          * @return {undefined}
  2886.          */
  2887.         var setCircleSize = function() {
  2888.         };
  2889.         /**
  2890.          * @return {undefined}
  2891.          */
  2892.         var animate = function() {
  2893.         };
  2894.         /**
  2895.          * @return {undefined}
  2896.          */
  2897.         var uiCleanupFunc = function() {
  2898.         };
  2899.         /**
  2900.          * @return {undefined}
  2901.          */
  2902.         var triggerListeners_ = function() {
  2903.         };
  2904.         /**
  2905.          * @return {undefined}
  2906.          */
  2907.         var transformCircle = function() {
  2908.         };
  2909.         /**
  2910.          * @return {undefined}
  2911.          */
  2912.         var blendingSource = function() {
  2913.         };
  2914.         /**
  2915.          * @return {undefined}
  2916.          */
  2917.         var onLoad = function() {
  2918.         };
  2919.         /**
  2920.          * @return {undefined}
  2921.          */
  2922.         var init = function() {
  2923.         };
  2924.         /**
  2925.          * @return {undefined}
  2926.          */
  2927.         var updateHighlightColor = function() {
  2928.         };
  2929.         switch(options.fx) {
  2930.           case "crossfade":
  2931.           case "cover":
  2932.           case "cover-fade":
  2933.           case "uncover":
  2934.           case "uncover-fade":
  2935.             t = y$jscomp$59.clone(true).appendTo($wrp$jscomp$0);
  2936.             t.children().slice(opts$jscomp$0.items.visibleConf.old).remove();
  2937.             break;
  2938.         }
  2939.         switch(options.fx) {
  2940.           case "crossfade":
  2941.           case "cover":
  2942.           case "cover-fade":
  2943.             y$jscomp$59.css("zIndex", 1);
  2944.             t.css("zIndex", 0);
  2945.             break;
  2946.         }
  2947.         scrl$jscomp$0 = sc_setScroll$jscomp$0(result, options.easing, conf$jscomp$0);
  2948.         /** @type {number} */
  2949.         z[opts$jscomp$0.d["left"]] = -position;
  2950.         /** @type {number} */
  2951.         fields[opts$jscomp$0.d["left"]] = -value;
  2952.         if (h < 0) {
  2953.           z[opts$jscomp$0.d["left"]] += h;
  2954.         }
  2955.         if (opts$jscomp$0[opts$jscomp$0.d["width"]] == "variable" || opts$jscomp$0[opts$jscomp$0.d["height"]] == "variable") {
  2956.           /**
  2957.            * @return {undefined}
  2958.            */
  2959.           setCircleSize = function() {
  2960.             $wrp$jscomp$0.css(arg1);
  2961.           };
  2962.           /**
  2963.            * @return {undefined}
  2964.            */
  2965.           animate = function() {
  2966.             scrl$jscomp$0.anims.push([$wrp$jscomp$0, arg1]);
  2967.           };
  2968.         }
  2969.         if (opts$jscomp$0.usePadding) {
  2970.           var holder_width = button.data("_cfs_origCssMargin");
  2971.           if (lasty >= 0) {
  2972.             holder_width = holder_width + opts$jscomp$0.padding[opts$jscomp$0.d[1]];
  2973.           }
  2974.           button.css(opts$jscomp$0.d["marginRight"], holder_width);
  2975.           if ($results.not($item).length) {
  2976.             itemCSS[opts$jscomp$0.d["marginRight"]] = $item.data("_cfs_origCssMargin");
  2977.           }
  2978.           /**
  2979.            * @return {undefined}
  2980.            */
  2981.           uiCleanupFunc = function() {
  2982.             $item.css(itemCSS);
  2983.           };
  2984.           /**
  2985.            * @return {undefined}
  2986.            */
  2987.           triggerListeners_ = function() {
  2988.             scrl$jscomp$0.anims.push([$item, itemCSS]);
  2989.           };
  2990.           var value = $results.data("_cfs_origCssMargin");
  2991.           if (h > 0) {
  2992.             value = value + opts$jscomp$0.padding[opts$jscomp$0.d[3]];
  2993.           }
  2994.           top[opts$jscomp$0.d["marginRight"]] = value;
  2995.           /**
  2996.            * @return {undefined}
  2997.            */
  2998.           transformCircle = function() {
  2999.             $results.css(top);
  3000.           };
  3001.           /**
  3002.            * @return {undefined}
  3003.            */
  3004.           blendingSource = function() {
  3005.             scrl$jscomp$0.anims.push([$results, top]);
  3006.           };
  3007.         }
  3008.         /**
  3009.          * @return {undefined}
  3010.          */
  3011.         updateHighlightColor = function() {
  3012.           y$jscomp$59.css(p);
  3013.         };
  3014.         /** @type {number} */
  3015.         var _ = opts$jscomp$0.items.visible + i - itms$jscomp$0.total;
  3016.         /**
  3017.          * @return {undefined}
  3018.          */
  3019.         init = function() {
  3020.           if (_ > 0) {
  3021.             y$jscomp$59.children().slice(itms$jscomp$0.total).remove();
  3022.           }
  3023.           var paddingHandleBottom = y$jscomp$59.children().slice(0, i).appendTo(y$jscomp$59).last();
  3024.           if (_ > 0) {
  3025.             res = gi_getCurrentItems$jscomp$0(el, opts$jscomp$0);
  3026.           }
  3027.           sc_showHiddenItems$jscomp$0(transformProperty);
  3028.           if (opts$jscomp$0.usePadding) {
  3029.             if (itms$jscomp$0.total < opts$jscomp$0.items.visible + i) {
  3030.               var paddingHandleBottom = y$jscomp$59.children().eq(opts$jscomp$0.items.visible - 1);
  3031.               paddingHandleBottom.css(opts$jscomp$0.d["marginRight"], paddingHandleBottom.data("_cfs_origCssMargin") + opts$jscomp$0.padding[opts$jscomp$0.d[1]]);
  3032.             }
  3033.             paddingHandleBottom.css(opts$jscomp$0.d["marginRight"], paddingHandleBottom.data("_cfs_origCssMargin"));
  3034.           }
  3035.         };
  3036.         var x = sc_mapCallbackArguments$jscomp$0(n, e, res, i, "next", result, arg1);
  3037.         /**
  3038.          * @return {undefined}
  3039.          */
  3040.         onLoad = function() {
  3041.           y$jscomp$59.css("zIndex", y$jscomp$59.data("_cfs_origCssZindex"));
  3042.           sc_afterScroll$jscomp$0(y$jscomp$59, t, options);
  3043.           /** @type {boolean} */
  3044.           A$jscomp$0.isScrolling = false;
  3045.           clbk$jscomp$0.onAfter = sc_fireCallbacks$jscomp$0($tt0$jscomp$0, options, "onAfter", x, clbk$jscomp$0);
  3046.           queu$jscomp$0 = sc_fireQueue$jscomp$0(y$jscomp$59, queu$jscomp$0, conf$jscomp$0);
  3047.           if (!A$jscomp$0.isPaused) {
  3048.             y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0));
  3049.           }
  3050.         };
  3051.         /** @type {boolean} */
  3052.         A$jscomp$0.isScrolling = true;
  3053.         tmrs$jscomp$0 = sc_clearTimers$jscomp$0(tmrs$jscomp$0);
  3054.         clbk$jscomp$0.onBefore = sc_fireCallbacks$jscomp$0($tt0$jscomp$0, options, "onBefore", x, clbk$jscomp$0);
  3055.         switch(options.fx) {
  3056.           case "none":
  3057.             y$jscomp$59.css(z);
  3058.             setCircleSize();
  3059.             uiCleanupFunc();
  3060.             transformCircle();
  3061.             updateHighlightColor();
  3062.             init();
  3063.             onLoad();
  3064.             break;
  3065.           case "fade":
  3066.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  3067.               "opacity" : 0
  3068.             }, function() {
  3069.               setCircleSize();
  3070.               uiCleanupFunc();
  3071.               transformCircle();
  3072.               updateHighlightColor();
  3073.               init();
  3074.               scrl$jscomp$0 = sc_setScroll$jscomp$0(result, options.easing, conf$jscomp$0);
  3075.               scrl$jscomp$0.anims.push([y$jscomp$59, {
  3076.                 "opacity" : 1
  3077.               }, onLoad]);
  3078.               sc_startScroll$jscomp$0(scrl$jscomp$0, conf$jscomp$0);
  3079.             }]);
  3080.             break;
  3081.           case "crossfade":
  3082.             y$jscomp$59.css({
  3083.               "opacity" : 0
  3084.             });
  3085.             scrl$jscomp$0.anims.push([t, {
  3086.               "opacity" : 0
  3087.             }]);
  3088.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  3089.               "opacity" : 1
  3090.             }, onLoad]);
  3091.             animate();
  3092.             uiCleanupFunc();
  3093.             transformCircle();
  3094.             updateHighlightColor();
  3095.             init();
  3096.             break;
  3097.           case "cover":
  3098.             y$jscomp$59.css(opts$jscomp$0.d["left"], $wrp$jscomp$0[opts$jscomp$0.d["width"]]());
  3099.             scrl$jscomp$0.anims.push([y$jscomp$59, p, onLoad]);
  3100.             animate();
  3101.             uiCleanupFunc();
  3102.             transformCircle();
  3103.             init();
  3104.             break;
  3105.           case "cover-fade":
  3106.             y$jscomp$59.css(opts$jscomp$0.d["left"], $wrp$jscomp$0[opts$jscomp$0.d["width"]]());
  3107.             scrl$jscomp$0.anims.push([t, {
  3108.               "opacity" : 0
  3109.             }]);
  3110.             scrl$jscomp$0.anims.push([y$jscomp$59, p, onLoad]);
  3111.             animate();
  3112.             uiCleanupFunc();
  3113.             transformCircle();
  3114.             init();
  3115.             break;
  3116.           case "uncover":
  3117.             scrl$jscomp$0.anims.push([t, fields, onLoad]);
  3118.             animate();
  3119.             uiCleanupFunc();
  3120.             transformCircle();
  3121.             updateHighlightColor();
  3122.             init();
  3123.             break;
  3124.           case "uncover-fade":
  3125.             y$jscomp$59.css({
  3126.               "opacity" : 0
  3127.             });
  3128.             scrl$jscomp$0.anims.push([y$jscomp$59, {
  3129.               "opacity" : 1
  3130.             }]);
  3131.             scrl$jscomp$0.anims.push([t, fields, onLoad]);
  3132.             animate();
  3133.             uiCleanupFunc();
  3134.             transformCircle();
  3135.             updateHighlightColor();
  3136.             init();
  3137.             break;
  3138.           default:
  3139.             scrl$jscomp$0.anims.push([y$jscomp$59, z, function() {
  3140.               updateHighlightColor();
  3141.               init();
  3142.               onLoad();
  3143.             }]);
  3144.             animate();
  3145.             triggerListeners_();
  3146.             blendingSource();
  3147.             break;
  3148.         }
  3149.         sc_startScroll$jscomp$0(scrl$jscomp$0, conf$jscomp$0);
  3150.         cf_setCookie$jscomp$0(opts$jscomp$0.cookie, y$jscomp$59, conf$jscomp$0);
  3151.         y$jscomp$59.trigger(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), [false, arg1]);
  3152.         return true;
  3153.       });
  3154.       y$jscomp$59.bind(cf_e$jscomp$0("slideTo", conf$jscomp$0), function(event, x, expectedSeries2, cp0, s, dir, h) {
  3155.         event.stopPropagation();
  3156.         /** @type {!Array} */
  3157.         var expected = [x, expectedSeries2, cp0, s, dir, h];
  3158.         /** @type {!Array} */
  3159.         var values = ["string/number/object", "number", "boolean", "object", "string", "function"];
  3160.         var args = cf_sortParams$jscomp$0(expected, values);
  3161.         s = args[3];
  3162.         dir = args[4];
  3163.         h = args[5];
  3164.         x = gn_getItemIndex$jscomp$0(args[0], args[1], args[2], itms$jscomp$0, y$jscomp$59);
  3165.         if (x == 0) {
  3166.           return false;
  3167.         }
  3168.         if (!is_object$jscomp$0(s)) {
  3169.           /** @type {boolean} */
  3170.           s = false;
  3171.         }
  3172.         if (dir != "prev" && dir != "next") {
  3173.           if (opts$jscomp$0.circular) {
  3174.             /** @type {string} */
  3175.             dir = x <= itms$jscomp$0.total / 2 ? "next" : "prev";
  3176.           } else {
  3177.             /** @type {string} */
  3178.             dir = itms$jscomp$0.first == 0 || itms$jscomp$0.first > x ? "next" : "prev";
  3179.           }
  3180.         }
  3181.         if (dir == "prev") {
  3182.           /** @type {number} */
  3183.           x = itms$jscomp$0.total - x;
  3184.         }
  3185.         y$jscomp$59.trigger(cf_e$jscomp$0(dir, conf$jscomp$0), [s, x, h]);
  3186.         return true;
  3187.       });
  3188.       y$jscomp$59.bind(cf_e$jscomp$0("prevPage", conf$jscomp$0), function(event, isUndo, groupObjects) {
  3189.         event.stopPropagation();
  3190.         var c = y$jscomp$59.triggerHandler(cf_e$jscomp$0("currentPage", conf$jscomp$0));
  3191.         return y$jscomp$59.triggerHandler(cf_e$jscomp$0("slideToPage", conf$jscomp$0), [c - 1, isUndo, "prev", groupObjects]);
  3192.       });
  3193.       y$jscomp$59.bind(cf_e$jscomp$0("nextPage", conf$jscomp$0), function(event, isUndo, groupObjects) {
  3194.         event.stopPropagation();
  3195.         var c = y$jscomp$59.triggerHandler(cf_e$jscomp$0("currentPage", conf$jscomp$0));
  3196.         return y$jscomp$59.triggerHandler(cf_e$jscomp$0("slideToPage", conf$jscomp$0), [c + 1, isUndo, "next", groupObjects]);
  3197.       });
  3198.       y$jscomp$59.bind(cf_e$jscomp$0("slideToPage", conf$jscomp$0), function(event, val, groupObjects, singleObjects, audiobeds) {
  3199.         event.stopPropagation();
  3200.         if (!is_number$jscomp$0(val)) {
  3201.           val = y$jscomp$59.triggerHandler(cf_e$jscomp$0("currentPage", conf$jscomp$0));
  3202.         }
  3203.         var count = opts$jscomp$0.pagination.items || opts$jscomp$0.items.visible;
  3204.         /** @type {number} */
  3205.         var edge = Math.ceil(itms$jscomp$0.total / count) - 1;
  3206.         if (val < 0) {
  3207.           /** @type {number} */
  3208.           val = edge;
  3209.         }
  3210.         if (val > edge) {
  3211.           /** @type {number} */
  3212.           val = 0;
  3213.         }
  3214.         return y$jscomp$59.triggerHandler(cf_e$jscomp$0("slideTo", conf$jscomp$0), [val * count, 0, true, groupObjects, singleObjects, audiobeds]);
  3215.       });
  3216.       y$jscomp$59.bind(cf_e$jscomp$0("jumpToStart", conf$jscomp$0), function(event, value) {
  3217.         event.stopPropagation();
  3218.         if (value) {
  3219.           value = gn_getItemIndex$jscomp$0(value, 0, true, itms$jscomp$0, y$jscomp$59);
  3220.         } else {
  3221.           /** @type {number} */
  3222.           value = 0;
  3223.         }
  3224.         value = value + itms$jscomp$0.first;
  3225.         if (value != 0) {
  3226.           if (itms$jscomp$0.total > 0) {
  3227.             for (; value > itms$jscomp$0.total;) {
  3228.               /** @type {number} */
  3229.               value = value - itms$jscomp$0.total;
  3230.             }
  3231.           }
  3232.           y$jscomp$59.prepend(y$jscomp$59.children().slice(value, itms$jscomp$0.total));
  3233.         }
  3234.         return true;
  3235.       });
  3236.       y$jscomp$59.bind(cf_e$jscomp$0("synchronise", conf$jscomp$0), function(event, s) {
  3237.         event.stopPropagation();
  3238.         if (s) {
  3239.           s = cf_getSynchArr$jscomp$0(s);
  3240.         } else {
  3241.           if (opts$jscomp$0.synchronise) {
  3242.             s = opts$jscomp$0.synchronise;
  3243.           } else {
  3244.             return debug$jscomp$0(conf$jscomp$0, "No carousel to synchronise.");
  3245.           }
  3246.         }
  3247.         var $viccollection = y$jscomp$59.triggerHandler(cf_e$jscomp$0("currentPosition", conf$jscomp$0));
  3248.         /** @type {boolean} */
  3249.         var x = true;
  3250.         /** @type {number} */
  3251.         var i = 0;
  3252.         var l = s.length;
  3253.         for (; i < l; i++) {
  3254.           if (!s[i][0].triggerHandler(cf_e$jscomp$0("slideTo", conf$jscomp$0), [$viccollection, s[i][3], true])) {
  3255.             /** @type {boolean} */
  3256.             x = false;
  3257.           }
  3258.         }
  3259.         return x;
  3260.       });
  3261.       y$jscomp$59.bind(cf_e$jscomp$0("queue", conf$jscomp$0), function(event, value, b) {
  3262.         event.stopPropagation();
  3263.         if (is_function$jscomp$0(value)) {
  3264.           value.call($tt0$jscomp$0, queu$jscomp$0);
  3265.         } else {
  3266.           if (is_array$jscomp$0(value)) {
  3267.             /** @type {!Object} */
  3268.             queu$jscomp$0 = value;
  3269.           } else {
  3270.             if (!is_undefined$jscomp$0(value)) {
  3271.               queu$jscomp$0.push([value, b]);
  3272.             }
  3273.           }
  3274.         }
  3275.         return queu$jscomp$0;
  3276.       });
  3277.       y$jscomp$59.bind(cf_e$jscomp$0("insertItem", conf$jscomp$0), function(event, target, i, style, value) {
  3278.         event.stopPropagation();
  3279.         /** @type {!Array} */
  3280.         var props = [target, i, style, value];
  3281.         /** @type {!Array} */
  3282.         var values = ["string/object", "string/number/object", "boolean", "number"];
  3283.         var args = cf_sortParams$jscomp$0(props, values);
  3284.         target = args[0];
  3285.         i = args[1];
  3286.         style = args[2];
  3287.         value = args[3];
  3288.         if (is_object$jscomp$0(target) && !is_jquery$jscomp$0(target)) {
  3289.           target = $$jscomp$0(target);
  3290.         } else {
  3291.           if (is_string$jscomp$0(target)) {
  3292.             target = $$jscomp$0(target);
  3293.           }
  3294.         }
  3295.         if (!is_jquery$jscomp$0(target) || target.length == 0) {
  3296.           return debug$jscomp$0(conf$jscomp$0, "Not a valid object.");
  3297.         }
  3298.         if (is_undefined$jscomp$0(i)) {
  3299.           /** @type {string} */
  3300.           i = "end";
  3301.         }
  3302.         sz_storeMargin$jscomp$0(target, opts$jscomp$0);
  3303.         sz_storeOrigCss$jscomp$0(target);
  3304.         /** @type {string} */
  3305.         var start = i;
  3306.         /** @type {string} */
  3307.         var method = "before";
  3308.         if (i == "end") {
  3309.           if (style) {
  3310.             if (itms$jscomp$0.first == 0) {
  3311.               /** @type {number} */
  3312.               i = itms$jscomp$0.total - 1;
  3313.               /** @type {string} */
  3314.               method = "after";
  3315.             } else {
  3316.               i = itms$jscomp$0.first;
  3317.               itms$jscomp$0.first += target.length;
  3318.             }
  3319.             if (i < 0) {
  3320.               /** @type {number} */
  3321.               i = 0;
  3322.             }
  3323.           } else {
  3324.             /** @type {number} */
  3325.             i = itms$jscomp$0.total - 1;
  3326.             /** @type {string} */
  3327.             method = "after";
  3328.           }
  3329.         } else {
  3330.           i = gn_getItemIndex$jscomp$0(i, value, style, itms$jscomp$0, y$jscomp$59);
  3331.         }
  3332.         var action = y$jscomp$59.children().eq(i);
  3333.         if (action.length) {
  3334.           action[method](target);
  3335.         } else {
  3336.           debug$jscomp$0(conf$jscomp$0, "Correct insert-position not found! Appending item to the end.");
  3337.           y$jscomp$59.append(target);
  3338.         }
  3339.         if (start != "end" && !style) {
  3340.           if (i < itms$jscomp$0.first) {
  3341.             itms$jscomp$0.first += target.length;
  3342.           }
  3343.         }
  3344.         itms$jscomp$0.total = y$jscomp$59.children().length;
  3345.         if (itms$jscomp$0.first >= itms$jscomp$0.total) {
  3346.           itms$jscomp$0.first -= itms$jscomp$0.total;
  3347.         }
  3348.         y$jscomp$59.trigger(cf_e$jscomp$0("updateSizes", conf$jscomp$0));
  3349.         y$jscomp$59.trigger(cf_e$jscomp$0("linkAnchors", conf$jscomp$0));
  3350.         return true;
  3351.       });
  3352.       y$jscomp$59.bind(cf_e$jscomp$0("removeItem", conf$jscomp$0), function(event, value, target, data) {
  3353.         event.stopPropagation();
  3354.         /** @type {!Array} */
  3355.         var args = [value, target, data];
  3356.         /** @type {!Array} */
  3357.         var types = ["string/number/object", "boolean", "number"];
  3358.         var obj = cf_sortParams$jscomp$0(args, types);
  3359.         value = obj[0];
  3360.         target = obj[1];
  3361.         data = obj[2];
  3362.         /** @type {boolean} */
  3363.         var g = false;
  3364.         if (value instanceof $$jscomp$0 && value.length > 1) {
  3365.           input = $$jscomp$0();
  3366.           value.each(function(i, a) {
  3367.             var coin = y$jscomp$59.trigger(cf_e$jscomp$0("removeItem", conf$jscomp$0), [$$jscomp$0(this), target, data]);
  3368.             if (coin) {
  3369.               input = input.add(coin);
  3370.             }
  3371.           });
  3372.           return input;
  3373.         }
  3374.         if (is_undefined$jscomp$0(value) || value == "end") {
  3375.           input = y$jscomp$59.children().last();
  3376.         } else {
  3377.           value = gn_getItemIndex$jscomp$0(value, data, target, itms$jscomp$0, y$jscomp$59);
  3378.           var input = y$jscomp$59.children().eq(value);
  3379.           if (input.length) {
  3380.             if (value < itms$jscomp$0.first) {
  3381.               itms$jscomp$0.first -= input.length;
  3382.             }
  3383.           }
  3384.         }
  3385.         if (input && input.length) {
  3386.           input.detach();
  3387.           itms$jscomp$0.total = y$jscomp$59.children().length;
  3388.           y$jscomp$59.trigger(cf_e$jscomp$0("updateSizes", conf$jscomp$0));
  3389.         }
  3390.         return input;
  3391.       });
  3392.       y$jscomp$59.bind(cf_e$jscomp$0("onBefore", conf$jscomp$0) + " " + cf_e$jscomp$0("onAfter", conf$jscomp$0), function(event, s) {
  3393.         event.stopPropagation();
  3394.         var stack = event.type.slice(conf$jscomp$0.events.prefix.length);
  3395.         if (is_array$jscomp$0(s)) {
  3396.           /** @type {!Object} */
  3397.           clbk$jscomp$0[stack] = s;
  3398.         }
  3399.         if (is_function$jscomp$0(s)) {
  3400.           clbk$jscomp$0[stack].push(s);
  3401.         }
  3402.         return clbk$jscomp$0[stack];
  3403.       });
  3404.       y$jscomp$59.bind(cf_e$jscomp$0("currentPosition", conf$jscomp$0), function(event, callback) {
  3405.         event.stopPropagation();
  3406.         if (itms$jscomp$0.first == 0) {
  3407.           /** @type {number} */
  3408.           var captionData = 0;
  3409.         } else {
  3410.           /** @type {number} */
  3411.           captionData = itms$jscomp$0.total - itms$jscomp$0.first;
  3412.         }
  3413.         if (is_function$jscomp$0(callback)) {
  3414.           callback.call($tt0$jscomp$0, captionData);
  3415.         }
  3416.         return captionData;
  3417.       });
  3418.       y$jscomp$59.bind(cf_e$jscomp$0("currentPage", conf$jscomp$0), function(event, value) {
  3419.         event.stopPropagation();
  3420.         var pageSize = opts$jscomp$0.pagination.items || opts$jscomp$0.items.visible;
  3421.         /** @type {number} */
  3422.         var startNo = Math.ceil(itms$jscomp$0.total / pageSize - 1);
  3423.         var i;
  3424.         if (itms$jscomp$0.first == 0) {
  3425.           /** @type {number} */
  3426.           i = 0;
  3427.         } else {
  3428.           if (itms$jscomp$0.first < itms$jscomp$0.total % pageSize) {
  3429.             /** @type {number} */
  3430.             i = 0;
  3431.           } else {
  3432.             if (itms$jscomp$0.first == pageSize && !opts$jscomp$0.circular) {
  3433.               /** @type {number} */
  3434.               i = startNo;
  3435.             } else {
  3436.               /** @type {number} */
  3437.               i = Math.round((itms$jscomp$0.total - itms$jscomp$0.first) / pageSize);
  3438.             }
  3439.           }
  3440.         }
  3441.         if (i < 0) {
  3442.           /** @type {number} */
  3443.           i = 0;
  3444.         }
  3445.         if (i > startNo) {
  3446.           /** @type {number} */
  3447.           i = startNo;
  3448.         }
  3449.         if (is_function$jscomp$0(value)) {
  3450.           value.call($tt0$jscomp$0, i);
  3451.         }
  3452.         return i;
  3453.       });
  3454.       y$jscomp$59.bind(cf_e$jscomp$0("currentVisible", conf$jscomp$0), function(event, value) {
  3455.         event.stopPropagation();
  3456.         var ctx = gi_getCurrentItems$jscomp$0(y$jscomp$59.children(), opts$jscomp$0);
  3457.         if (is_function$jscomp$0(value)) {
  3458.           value.call($tt0$jscomp$0, ctx);
  3459.         }
  3460.         return ctx;
  3461.       });
  3462.       y$jscomp$59.bind(cf_e$jscomp$0("slice", conf$jscomp$0), function(event, value, i, callback) {
  3463.         event.stopPropagation();
  3464.         if (itms$jscomp$0.total == 0) {
  3465.           return false;
  3466.         }
  3467.         /** @type {!Array} */
  3468.         var args = [value, i, callback];
  3469.         /** @type {!Array} */
  3470.         var basicTypes = ["number", "number", "function"];
  3471.         var methodArgs = cf_sortParams$jscomp$0(args, basicTypes);
  3472.         value = is_number$jscomp$0(methodArgs[0]) ? methodArgs[0] : 0;
  3473.         i = is_number$jscomp$0(methodArgs[1]) ? methodArgs[1] : itms$jscomp$0.total;
  3474.         callback = methodArgs[2];
  3475.         value = value + itms$jscomp$0.first;
  3476.         i = i + itms$jscomp$0.first;
  3477.         if (items.total > 0) {
  3478.           for (; value > itms$jscomp$0.total;) {
  3479.             /** @type {number} */
  3480.             value = value - itms$jscomp$0.total;
  3481.           }
  3482.           for (; i > itms$jscomp$0.total;) {
  3483.             /** @type {number} */
  3484.             i = i - itms$jscomp$0.total;
  3485.           }
  3486.           for (; value < 0;) {
  3487.             value = value + itms$jscomp$0.total;
  3488.           }
  3489.           for (; i < 0;) {
  3490.             i = i + itms$jscomp$0.total;
  3491.           }
  3492.         }
  3493.         var test = y$jscomp$59.children();
  3494.         var selected;
  3495.         if (i > value) {
  3496.           selected = test.slice(value, i);
  3497.         } else {
  3498.           selected = $$jscomp$0(test.slice(value, itms$jscomp$0.total).get().concat(test.slice(0, i).get()));
  3499.         }
  3500.         if (is_function$jscomp$0(callback)) {
  3501.           callback.call($tt0$jscomp$0, selected);
  3502.         }
  3503.         return selected;
  3504.       });
  3505.       y$jscomp$59.bind(cf_e$jscomp$0("isPaused", conf$jscomp$0) + " " + cf_e$jscomp$0("isStopped", conf$jscomp$0) + " " + cf_e$jscomp$0("isScrolling", conf$jscomp$0), function(event, callback) {
  3506.         event.stopPropagation();
  3507.         var i = event.type.slice(conf$jscomp$0.events.prefix.length);
  3508.         var args = A$jscomp$0[i];
  3509.         if (is_function$jscomp$0(callback)) {
  3510.           callback.call($tt0$jscomp$0, args);
  3511.         }
  3512.         return args;
  3513.       });
  3514.       y$jscomp$59.bind(cf_e$jscomp$0("configuration", conf$jscomp$0), function(e$jscomp$34, a$jscomp$91, b$jscomp$62, c$jscomp$42) {
  3515.         e$jscomp$34.stopPropagation();
  3516.         /** @type {boolean} */
  3517.         var d$jscomp$24 = false;
  3518.         if (is_function$jscomp$0(a$jscomp$91)) {
  3519.           a$jscomp$91.call($tt0$jscomp$0, opts$jscomp$0);
  3520.         } else {
  3521.           if (is_object$jscomp$0(a$jscomp$91)) {
  3522.             opts_orig$jscomp$0 = $$jscomp$0.extend(true, {}, opts_orig$jscomp$0, a$jscomp$91);
  3523.             if (b$jscomp$62 !== false) {
  3524.               /** @type {boolean} */
  3525.               d$jscomp$24 = true;
  3526.             } else {
  3527.               opts$jscomp$0 = $$jscomp$0.extend(true, {}, opts$jscomp$0, a$jscomp$91);
  3528.             }
  3529.           } else {
  3530.             if (!is_undefined$jscomp$0(a$jscomp$91)) {
  3531.               if (is_function$jscomp$0(b$jscomp$62)) {
  3532.                 /** @type {*} */
  3533.                 var f$jscomp$15 = eval("opts." + a$jscomp$91);
  3534.                 if (is_undefined$jscomp$0(f$jscomp$15)) {
  3535.                   /** @type {string} */
  3536.                   f$jscomp$15 = "";
  3537.                 }
  3538.                 b$jscomp$62.call($tt0$jscomp$0, f$jscomp$15);
  3539.               } else {
  3540.                 if (!is_undefined$jscomp$0(b$jscomp$62)) {
  3541.                   if (typeof c$jscomp$42 !== "boolean") {
  3542.                     /** @type {boolean} */
  3543.                     c$jscomp$42 = true;
  3544.                   }
  3545.                   eval("opts_orig." + a$jscomp$91 + " = b");
  3546.                   if (c$jscomp$42 !== false) {
  3547.                     /** @type {boolean} */
  3548.                     d$jscomp$24 = true;
  3549.                   } else {
  3550.                     eval("opts." + a$jscomp$91 + " = b");
  3551.                   }
  3552.                 } else {
  3553.                   return eval("opts." + a$jscomp$91);
  3554.                 }
  3555.               }
  3556.             }
  3557.           }
  3558.         }
  3559.         if (d$jscomp$24) {
  3560.           sz_resetMargin$jscomp$0(y$jscomp$59.children(), opts$jscomp$0);
  3561.           z$jscomp$11._cfs_init(opts_orig$jscomp$0);
  3562.           z$jscomp$11._cfs_bind_buttons();
  3563.           var g$jscomp$7 = sz_setSizes$jscomp$0(y$jscomp$59, opts$jscomp$0);
  3564.           y$jscomp$59.trigger(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), [true, g$jscomp$7]);
  3565.         }
  3566.         return opts$jscomp$0;
  3567.       });
  3568.       y$jscomp$59.bind(cf_e$jscomp$0("linkAnchors", conf$jscomp$0), function(event, a, val) {
  3569.         event.stopPropagation();
  3570.         if (is_undefined$jscomp$0(a)) {
  3571.           a = $$jscomp$0("body");
  3572.         } else {
  3573.           if (is_string$jscomp$0(a)) {
  3574.             a = $$jscomp$0(a);
  3575.           }
  3576.         }
  3577.         if (!is_jquery$jscomp$0(a) || a.length == 0) {
  3578.           return debug$jscomp$0(conf$jscomp$0, "Not a valid object.");
  3579.         }
  3580.         if (!is_string$jscomp$0(val)) {
  3581.           /** @type {string} */
  3582.           val = "a.caroufredsel";
  3583.         }
  3584.         a.find(val).each(function() {
  3585.           var x = this.hash || "";
  3586.           if (x.length > 0 && y$jscomp$59.children().index($$jscomp$0(x)) != -1) {
  3587.             $$jscomp$0(this).unbind("click").click(function(event) {
  3588.               event.preventDefault();
  3589.               y$jscomp$59.trigger(cf_e$jscomp$0("slideTo", conf$jscomp$0), x);
  3590.             });
  3591.           }
  3592.         });
  3593.         return true;
  3594.       });
  3595.       y$jscomp$59.bind(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), function(event, b, canCreateDiscussions) {
  3596.         event.stopPropagation();
  3597.         if (!opts$jscomp$0.pagination.container) {
  3598.           return;
  3599.         }
  3600.         var limit = opts$jscomp$0.pagination.items || opts$jscomp$0.items.visible;
  3601.         /** @type {number} */
  3602.         var u = Math.ceil(itms$jscomp$0.total / limit);
  3603.         if (b) {
  3604.           if (opts$jscomp$0.pagination.anchorBuilder) {
  3605.             opts$jscomp$0.pagination.container.children().remove();
  3606.             opts$jscomp$0.pagination.container.each(function() {
  3607.               /** @type {number} */
  3608.               var i = 0;
  3609.               for (; i < u; i++) {
  3610.                 var cmpEvents = y$jscomp$59.children().eq(gn_getItemIndex$jscomp$0(i * limit, 0, true, itms$jscomp$0, y$jscomp$59));
  3611.                 $$jscomp$0(this).append(opts$jscomp$0.pagination.anchorBuilder.call(cmpEvents[0], i + 1));
  3612.               }
  3613.             });
  3614.           }
  3615.           opts$jscomp$0.pagination.container.each(function() {
  3616.             $$jscomp$0(this).children().unbind(opts$jscomp$0.pagination.event).each(function(step) {
  3617.               $$jscomp$0(this).bind(opts$jscomp$0.pagination.event, function(event) {
  3618.                 event.preventDefault();
  3619.                 y$jscomp$59.trigger(cf_e$jscomp$0("slideTo", conf$jscomp$0), [step * limit, -opts$jscomp$0.pagination.deviation, true, opts$jscomp$0.pagination]);
  3620.               });
  3621.             });
  3622.           });
  3623.         }
  3624.         var f = y$jscomp$59.triggerHandler(cf_e$jscomp$0("currentPage", conf$jscomp$0)) + opts$jscomp$0.pagination.deviation;
  3625.         if (f >= u) {
  3626.           /** @type {number} */
  3627.           f = 0;
  3628.         }
  3629.         if (f < 0) {
  3630.           /** @type {number} */
  3631.           f = u - 1;
  3632.         }
  3633.         opts$jscomp$0.pagination.container.each(function() {
  3634.           $$jscomp$0(this).children().removeClass(cf_c$jscomp$0("selected", conf$jscomp$0)).eq(f).addClass(cf_c$jscomp$0("selected", conf$jscomp$0));
  3635.         });
  3636.         return true;
  3637.       });
  3638.       y$jscomp$59.bind(cf_e$jscomp$0("updateSizes", conf$jscomp$0), function(canCreateDiscussions) {
  3639.         var v = opts$jscomp$0.items.visible;
  3640.         var settings = y$jscomp$59.children();
  3641.         var data = ms_getParentSize$jscomp$0($wrp$jscomp$0, opts$jscomp$0, "width");
  3642.         itms$jscomp$0.total = settings.length;
  3643.         if (A$jscomp$0.primarySizePercentage) {
  3644.           opts$jscomp$0.maxDimension = data;
  3645.           opts$jscomp$0[opts$jscomp$0.d["width"]] = ms_getPercentage$jscomp$0(data, A$jscomp$0.primarySizePercentage);
  3646.         } else {
  3647.           opts$jscomp$0.maxDimension = ms_getMaxDimension$jscomp$0(opts$jscomp$0, data);
  3648.         }
  3649.         if (opts$jscomp$0.responsive) {
  3650.           opts$jscomp$0.items.width = opts$jscomp$0.items.sizesConf.width;
  3651.           opts$jscomp$0.items.height = opts$jscomp$0.items.sizesConf.height;
  3652.           opts$jscomp$0 = in_getResponsiveValues$jscomp$0(opts$jscomp$0, settings, data);
  3653.           v = opts$jscomp$0.items.visible;
  3654.           sz_setResponsiveSizes$jscomp$0(opts$jscomp$0, settings);
  3655.         } else {
  3656.           if (opts$jscomp$0.items.visibleConf.variable) {
  3657.             v = gn_getVisibleItemsNext$jscomp$0(settings, opts$jscomp$0, 0);
  3658.           } else {
  3659.             if (opts$jscomp$0.items.filter != "*") {
  3660.               v = gn_getVisibleItemsNextFilter$jscomp$0(settings, opts$jscomp$0, 0);
  3661.             }
  3662.           }
  3663.         }
  3664.         if (!opts$jscomp$0.circular && itms$jscomp$0.first != 0 && v > itms$jscomp$0.first) {
  3665.           if (opts$jscomp$0.items.visibleConf.variable) {
  3666.             /** @type {number} */
  3667.             var ctx = gn_getVisibleItemsPrev$jscomp$0(settings, opts$jscomp$0, itms$jscomp$0.first) - itms$jscomp$0.first;
  3668.           } else {
  3669.             if (opts$jscomp$0.items.filter != "*") {
  3670.               /** @type {number} */
  3671.               ctx = gn_getVisibleItemsPrevFilter$jscomp$0(settings, opts$jscomp$0, itms$jscomp$0.first) - itms$jscomp$0.first;
  3672.             } else {
  3673.               /** @type {number} */
  3674.               ctx = opts$jscomp$0.items.visible - itms$jscomp$0.first;
  3675.             }
  3676.           }
  3677.           debug$jscomp$0(conf$jscomp$0, "Preventing non-circular: sliding " + ctx + " items backward.");
  3678.           y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0), ctx);
  3679.         }
  3680.         opts$jscomp$0.items.visible = cf_getItemsAdjust$jscomp$0(v, opts$jscomp$0, opts$jscomp$0.items.visibleConf.adjust, $tt0$jscomp$0);
  3681.         opts$jscomp$0.items.visibleConf.old = opts$jscomp$0.items.visible;
  3682.         opts$jscomp$0 = in_getAlignPadding$jscomp$0(opts$jscomp$0, settings);
  3683.         var cursor = sz_setSizes$jscomp$0(y$jscomp$59, opts$jscomp$0);
  3684.         y$jscomp$59.trigger(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), [true, cursor]);
  3685.         nv_showNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.total, conf$jscomp$0);
  3686.         nv_enableNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.first, conf$jscomp$0);
  3687.         return cursor;
  3688.       });
  3689.       y$jscomp$59.bind(cf_e$jscomp$0("destroy", conf$jscomp$0), function(event, a) {
  3690.         event.stopPropagation();
  3691.         tmrs$jscomp$0 = sc_clearTimers$jscomp$0(tmrs$jscomp$0);
  3692.         y$jscomp$59.data("_cfs_isCarousel", false);
  3693.         y$jscomp$59.trigger(cf_e$jscomp$0("finish", conf$jscomp$0));
  3694.         if (a) {
  3695.           y$jscomp$59.trigger(cf_e$jscomp$0("jumpToStart", conf$jscomp$0));
  3696.         }
  3697.         sz_restoreOrigCss$jscomp$0(y$jscomp$59.children());
  3698.         sz_restoreOrigCss$jscomp$0(y$jscomp$59);
  3699.         z$jscomp$11._cfs_unbind_events();
  3700.         z$jscomp$11._cfs_unbind_buttons();
  3701.         if (conf$jscomp$0.wrapper == "parent") {
  3702.           sz_restoreOrigCss$jscomp$0($wrp$jscomp$0);
  3703.         } else {
  3704.           $wrp$jscomp$0.replaceWith(y$jscomp$59);
  3705.         }
  3706.         return true;
  3707.       });
  3708.       y$jscomp$59.bind(cf_e$jscomp$0("debug", conf$jscomp$0), function(canCreateDiscussions) {
  3709.         debug$jscomp$0(conf$jscomp$0, "Carousel width: " + opts$jscomp$0.width);
  3710.         debug$jscomp$0(conf$jscomp$0, "Carousel height: " + opts$jscomp$0.height);
  3711.         debug$jscomp$0(conf$jscomp$0, "Item widths: " + opts$jscomp$0.items.width);
  3712.         debug$jscomp$0(conf$jscomp$0, "Item heights: " + opts$jscomp$0.items.height);
  3713.         debug$jscomp$0(conf$jscomp$0, "Number of items visible: " + opts$jscomp$0.items.visible);
  3714.         if (opts$jscomp$0.auto.play) {
  3715.           debug$jscomp$0(conf$jscomp$0, "Number of items scrolled automatically: " + opts$jscomp$0.auto.items);
  3716.         }
  3717.         if (opts$jscomp$0.prev.button) {
  3718.           debug$jscomp$0(conf$jscomp$0, "Number of items scrolled backward: " + opts$jscomp$0.prev.items);
  3719.         }
  3720.         if (opts$jscomp$0.next.button) {
  3721.           debug$jscomp$0(conf$jscomp$0, "Number of items scrolled forward: " + opts$jscomp$0.next.items);
  3722.         }
  3723.         return conf$jscomp$0.debug;
  3724.       });
  3725.       y$jscomp$59.bind("_cfs_triggerEvent", function(event, _rows, d) {
  3726.         event.stopPropagation();
  3727.         return y$jscomp$59.triggerHandler(cf_e$jscomp$0(_rows, conf$jscomp$0), d);
  3728.       });
  3729.     };
  3730.     /**
  3731.      * @return {undefined}
  3732.      */
  3733.     z$jscomp$11._cfs_unbind_events = function() {
  3734.       y$jscomp$59.unbind(cf_e$jscomp$0("", conf$jscomp$0));
  3735.       y$jscomp$59.unbind(cf_e$jscomp$0("", conf$jscomp$0, false));
  3736.       y$jscomp$59.unbind("_cfs_triggerEvent");
  3737.     };
  3738.     /**
  3739.      * @return {undefined}
  3740.      */
  3741.     z$jscomp$11._cfs_bind_buttons = function() {
  3742.       z$jscomp$11._cfs_unbind_buttons();
  3743.       nv_showNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.total, conf$jscomp$0);
  3744.       nv_enableNavi$jscomp$0(opts$jscomp$0, itms$jscomp$0.first, conf$jscomp$0);
  3745.       if (opts$jscomp$0.auto.pauseOnHover) {
  3746.         var ctx = bt_pauseOnHoverConfig$jscomp$0(opts$jscomp$0.auto.pauseOnHover);
  3747.         $wrp$jscomp$0.bind(cf_e$jscomp$0("mouseenter", conf$jscomp$0, false), function() {
  3748.           y$jscomp$59.trigger(cf_e$jscomp$0("pause", conf$jscomp$0), ctx);
  3749.         }).bind(cf_e$jscomp$0("mouseleave", conf$jscomp$0, false), function() {
  3750.           y$jscomp$59.trigger(cf_e$jscomp$0("resume", conf$jscomp$0));
  3751.         });
  3752.       }
  3753.       if (opts$jscomp$0.auto.button) {
  3754.         opts$jscomp$0.auto.button.bind(cf_e$jscomp$0(opts$jscomp$0.auto.event, conf$jscomp$0, false), function(event) {
  3755.           event.preventDefault();
  3756.           /** @type {boolean} */
  3757.           var status = false;
  3758.           /** @type {null} */
  3759.           var ctx = null;
  3760.           if (A$jscomp$0.isPaused) {
  3761.             /** @type {string} */
  3762.             status = "play";
  3763.           } else {
  3764.             if (opts$jscomp$0.auto.pauseOnEvent) {
  3765.               /** @type {string} */
  3766.               status = "pause";
  3767.               ctx = bt_pauseOnHoverConfig$jscomp$0(opts$jscomp$0.auto.pauseOnEvent);
  3768.             }
  3769.           }
  3770.           if (status) {
  3771.             y$jscomp$59.trigger(cf_e$jscomp$0(status, conf$jscomp$0), ctx);
  3772.           }
  3773.         });
  3774.       }
  3775.       if (opts$jscomp$0.prev.button) {
  3776.         opts$jscomp$0.prev.button.bind(cf_e$jscomp$0(opts$jscomp$0.prev.event, conf$jscomp$0, false), function(event) {
  3777.           event.preventDefault();
  3778.           y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0));
  3779.         });
  3780.         if (opts$jscomp$0.prev.pauseOnHover) {
  3781.           ctx = bt_pauseOnHoverConfig$jscomp$0(opts$jscomp$0.prev.pauseOnHover);
  3782.           opts$jscomp$0.prev.button.bind(cf_e$jscomp$0("mouseenter", conf$jscomp$0, false), function() {
  3783.             y$jscomp$59.trigger(cf_e$jscomp$0("pause", conf$jscomp$0), ctx);
  3784.           }).bind(cf_e$jscomp$0("mouseleave", conf$jscomp$0, false), function() {
  3785.             y$jscomp$59.trigger(cf_e$jscomp$0("resume", conf$jscomp$0));
  3786.           });
  3787.         }
  3788.       }
  3789.       if (opts$jscomp$0.next.button) {
  3790.         opts$jscomp$0.next.button.bind(cf_e$jscomp$0(opts$jscomp$0.next.event, conf$jscomp$0, false), function(event) {
  3791.           event.preventDefault();
  3792.           y$jscomp$59.trigger(cf_e$jscomp$0("next", conf$jscomp$0));
  3793.         });
  3794.         if (opts$jscomp$0.next.pauseOnHover) {
  3795.           ctx = bt_pauseOnHoverConfig$jscomp$0(opts$jscomp$0.next.pauseOnHover);
  3796.           opts$jscomp$0.next.button.bind(cf_e$jscomp$0("mouseenter", conf$jscomp$0, false), function() {
  3797.             y$jscomp$59.trigger(cf_e$jscomp$0("pause", conf$jscomp$0), ctx);
  3798.           }).bind(cf_e$jscomp$0("mouseleave", conf$jscomp$0, false), function() {
  3799.             y$jscomp$59.trigger(cf_e$jscomp$0("resume", conf$jscomp$0));
  3800.           });
  3801.         }
  3802.       }
  3803.       if (opts$jscomp$0.pagination.container) {
  3804.         if (opts$jscomp$0.pagination.pauseOnHover) {
  3805.           ctx = bt_pauseOnHoverConfig$jscomp$0(opts$jscomp$0.pagination.pauseOnHover);
  3806.           opts$jscomp$0.pagination.container.bind(cf_e$jscomp$0("mouseenter", conf$jscomp$0, false), function() {
  3807.             y$jscomp$59.trigger(cf_e$jscomp$0("pause", conf$jscomp$0), ctx);
  3808.           }).bind(cf_e$jscomp$0("mouseleave", conf$jscomp$0, false), function() {
  3809.             y$jscomp$59.trigger(cf_e$jscomp$0("resume", conf$jscomp$0));
  3810.           });
  3811.         }
  3812.       }
  3813.       if (opts$jscomp$0.prev.key || opts$jscomp$0.next.key) {
  3814.         $$jscomp$0(document).bind(cf_e$jscomp$0("keyup", conf$jscomp$0, false, true, true), function(event) {
  3815.           var keyCode = event.keyCode;
  3816.           if (keyCode == opts$jscomp$0.next.key) {
  3817.             event.preventDefault();
  3818.             y$jscomp$59.trigger(cf_e$jscomp$0("next", conf$jscomp$0));
  3819.           }
  3820.           if (keyCode == opts$jscomp$0.prev.key) {
  3821.             event.preventDefault();
  3822.             y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0));
  3823.           }
  3824.         });
  3825.       }
  3826.       if (opts$jscomp$0.pagination.keys) {
  3827.         $$jscomp$0(document).bind(cf_e$jscomp$0("keyup", conf$jscomp$0, false, true, true), function(event) {
  3828.           var code = event.keyCode;
  3829.           if (code >= 49 && code < 58) {
  3830.             /** @type {number} */
  3831.             code = (code - 49) * opts$jscomp$0.items.visible;
  3832.             if (code <= itms$jscomp$0.total) {
  3833.               event.preventDefault();
  3834.               y$jscomp$59.trigger(cf_e$jscomp$0("slideTo", conf$jscomp$0), [code, 0, true, opts$jscomp$0.pagination]);
  3835.             }
  3836.           }
  3837.         });
  3838.       }
  3839.       if ($$jscomp$0.fn.swipe) {
  3840.         /** @type {boolean} */
  3841.         var IS_TOUCH_ENABLED = "ontouchstart" in window;
  3842.         if (IS_TOUCH_ENABLED && opts$jscomp$0.swipe.onTouch || !IS_TOUCH_ENABLED && opts$jscomp$0.swipe.onMouse) {
  3843.           var positionsToSend = $$jscomp$0.extend(true, {}, opts$jscomp$0.prev, opts$jscomp$0.swipe);
  3844.           var _fwdflat = $$jscomp$0.extend(true, {}, opts$jscomp$0.next, opts$jscomp$0.swipe);
  3845.           /**
  3846.            * @return {undefined}
  3847.            */
  3848.           var prev = function() {
  3849.             y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0), [positionsToSend]);
  3850.           };
  3851.           /**
  3852.            * @return {undefined}
  3853.            */
  3854.           var next = function() {
  3855.             y$jscomp$59.trigger(cf_e$jscomp$0("next", conf$jscomp$0), [_fwdflat]);
  3856.           };
  3857.           switch(opts$jscomp$0.direction) {
  3858.             case "up":
  3859.             case "down":
  3860.               /** @type {function(): undefined} */
  3861.               opts$jscomp$0.swipe.options.swipeUp = next;
  3862.               /** @type {function(): undefined} */
  3863.               opts$jscomp$0.swipe.options.swipeDown = prev;
  3864.               break;
  3865.             default:
  3866.               /** @type {function(): undefined} */
  3867.               opts$jscomp$0.swipe.options.swipeLeft = next;
  3868.               /** @type {function(): undefined} */
  3869.               opts$jscomp$0.swipe.options.swipeRight = prev;
  3870.           }
  3871.           if (A$jscomp$0.swipe) {
  3872.             y$jscomp$59.swipe("destroy");
  3873.           }
  3874.           $wrp$jscomp$0.swipe(opts$jscomp$0.swipe.options);
  3875.           $wrp$jscomp$0.css("cursor", "move");
  3876.           /** @type {boolean} */
  3877.           A$jscomp$0.swipe = true;
  3878.         }
  3879.       }
  3880.       if ($$jscomp$0.fn.mousewheel) {
  3881.         if (opts$jscomp$0.mousewheel) {
  3882.           var positionsToSend = $$jscomp$0.extend(true, {}, opts$jscomp$0.prev, opts$jscomp$0.mousewheel);
  3883.           var _fwdflat = $$jscomp$0.extend(true, {}, opts$jscomp$0.next, opts$jscomp$0.mousewheel);
  3884.           if (A$jscomp$0.mousewheel) {
  3885.             $wrp$jscomp$0.unbind(cf_e$jscomp$0("mousewheel", conf$jscomp$0, false));
  3886.           }
  3887.           $wrp$jscomp$0.bind(cf_e$jscomp$0("mousewheel", conf$jscomp$0, false), function(event, a) {
  3888.             event.preventDefault();
  3889.             if (a > 0) {
  3890.               y$jscomp$59.trigger(cf_e$jscomp$0("prev", conf$jscomp$0), [positionsToSend]);
  3891.             } else {
  3892.               y$jscomp$59.trigger(cf_e$jscomp$0("next", conf$jscomp$0), [_fwdflat]);
  3893.             }
  3894.           });
  3895.           /** @type {boolean} */
  3896.           A$jscomp$0.mousewheel = true;
  3897.         }
  3898.       }
  3899.       if (opts$jscomp$0.auto.play) {
  3900.         y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0), opts$jscomp$0.auto.delay);
  3901.       }
  3902.       if (A$jscomp$0.upDateOnWindowResize) {
  3903.         /**
  3904.          * @param {?} fullFormat
  3905.          * @return {undefined}
  3906.          */
  3907.         var fn = function(fullFormat) {
  3908.           y$jscomp$59.trigger(cf_e$jscomp$0("finish", conf$jscomp$0));
  3909.           if (opts$jscomp$0.auto.pauseOnResize && !A$jscomp$0.isPaused) {
  3910.             y$jscomp$59.trigger(cf_e$jscomp$0("play", conf$jscomp$0));
  3911.           }
  3912.           sz_resetMargin$jscomp$0(y$jscomp$59.children(), opts$jscomp$0);
  3913.           y$jscomp$59.trigger(cf_e$jscomp$0("updateSizes", conf$jscomp$0));
  3914.         };
  3915.         var $window = $$jscomp$0(window);
  3916.         /** @type {null} */
  3917.         var handler = null;
  3918.         if ($$jscomp$0.debounce && conf$jscomp$0.onWindowResize == "debounce") {
  3919.           handler = $$jscomp$0.debounce(200, fn);
  3920.         } else {
  3921.           if ($$jscomp$0.throttle && conf$jscomp$0.onWindowResize == "throttle") {
  3922.             handler = $$jscomp$0.throttle(300, fn);
  3923.           } else {
  3924.             /** @type {number} */
  3925.             var i = 0;
  3926.             /** @type {number} */
  3927.             var j = 0;
  3928.             /**
  3929.              * @return {undefined}
  3930.              */
  3931.             handler = function() {
  3932.               var k = $window.width();
  3933.               var l = $window.height();
  3934.               if (k != i || l != j) {
  3935.                 fn();
  3936.                 i = k;
  3937.                 j = l;
  3938.               }
  3939.             };
  3940.           }
  3941.         }
  3942.         $window.bind(cf_e$jscomp$0("resize", conf$jscomp$0, false, true, true), handler);
  3943.       }
  3944.     };
  3945.     /**
  3946.      * @return {undefined}
  3947.      */
  3948.     z$jscomp$11._cfs_unbind_buttons = function() {
  3949.       var agent = cf_e$jscomp$0("", conf$jscomp$0);
  3950.       var params = cf_e$jscomp$0("", conf$jscomp$0, false);
  3951.       ns3 = cf_e$jscomp$0("", conf$jscomp$0, false, true, true);
  3952.       $$jscomp$0(document).unbind(ns3);
  3953.       $$jscomp$0(window).unbind(ns3);
  3954.       $wrp$jscomp$0.unbind(params);
  3955.       if (opts$jscomp$0.auto.button) {
  3956.         opts$jscomp$0.auto.button.unbind(params);
  3957.       }
  3958.       if (opts$jscomp$0.prev.button) {
  3959.         opts$jscomp$0.prev.button.unbind(params);
  3960.       }
  3961.       if (opts$jscomp$0.next.button) {
  3962.         opts$jscomp$0.next.button.unbind(params);
  3963.       }
  3964.       if (opts$jscomp$0.pagination.container) {
  3965.         opts$jscomp$0.pagination.container.unbind(params);
  3966.         if (opts$jscomp$0.pagination.anchorBuilder) {
  3967.           opts$jscomp$0.pagination.container.children().remove();
  3968.         }
  3969.       }
  3970.       if (A$jscomp$0.swipe) {
  3971.         y$jscomp$59.swipe("destroy");
  3972.         $wrp$jscomp$0.css("cursor", "default");
  3973.         /** @type {boolean} */
  3974.         A$jscomp$0.swipe = false;
  3975.       }
  3976.       if (A$jscomp$0.mousewheel) {
  3977.         /** @type {boolean} */
  3978.         A$jscomp$0.mousewheel = false;
  3979.       }
  3980.       nv_showNavi$jscomp$0(opts$jscomp$0, "hide", conf$jscomp$0);
  3981.       nv_enableNavi$jscomp$0(opts$jscomp$0, "removeClass", conf$jscomp$0);
  3982.     };
  3983.     if (is_boolean$jscomp$0(w$jscomp$7)) {
  3984.       w$jscomp$7 = {
  3985.         "debug" : w$jscomp$7
  3986.       };
  3987.     }
  3988.     var A$jscomp$0 = {
  3989.       "direction" : "next",
  3990.       "isPaused" : true,
  3991.       "isScrolling" : false,
  3992.       "isStopped" : false,
  3993.       "mousewheel" : false,
  3994.       "swipe" : false
  3995.     };
  3996.     var itms$jscomp$0 = {
  3997.       "total" : y$jscomp$59.children().length,
  3998.       "first" : 0
  3999.     };
  4000.     var tmrs$jscomp$0 = {
  4001.       "auto" : null,
  4002.       "progress" : null,
  4003.       "startTime" : getTime$jscomp$0(),
  4004.       "timePassed" : 0
  4005.     };
  4006.     var scrl$jscomp$0 = {
  4007.       "isStopped" : false,
  4008.       "duration" : 0,
  4009.       "startTime" : 0,
  4010.       "easing" : "",
  4011.       "anims" : []
  4012.     };
  4013.     var clbk$jscomp$0 = {
  4014.       "onBefore" : [],
  4015.       "onAfter" : []
  4016.     };
  4017.     /** @type {!Array} */
  4018.     var queu$jscomp$0 = [];
  4019.     var conf$jscomp$0 = $$jscomp$0.extend(true, {}, $$jscomp$0.fn.carouFredSel.configs, w$jscomp$7);
  4020.     var opts$jscomp$0 = {};
  4021.     var opts_orig$jscomp$0 = $$jscomp$0.extend(true, {}, u$jscomp$0);
  4022.     var $wrp$jscomp$0 = conf$jscomp$0.wrapper == "parent" ? y$jscomp$59.parent() : y$jscomp$59.wrap("<" + conf$jscomp$0.wrapper.element + ' class="' + conf$jscomp$0.wrapper.classname + '" />').parent();
  4023.     conf$jscomp$0.selector = y$jscomp$59.selector;
  4024.     /** @type {number} */
  4025.     conf$jscomp$0.serialNumber = $$jscomp$0.fn.carouFredSel.serialNumber++;
  4026.     /** @type {string} */
  4027.     conf$jscomp$0.transition = conf$jscomp$0.transition && $$jscomp$0.fn.transition ? "transition" : "animate";
  4028.     z$jscomp$11._cfs_init(opts_orig$jscomp$0, true, starting_position$jscomp$0);
  4029.     z$jscomp$11._cfs_build();
  4030.     z$jscomp$11._cfs_bind_events();
  4031.     z$jscomp$11._cfs_bind_buttons();
  4032.     if (is_array$jscomp$0(opts$jscomp$0.items.start)) {
  4033.       var B$jscomp$0 = opts$jscomp$0.items.start;
  4034.     } else {
  4035.       /** @type {!Array} */
  4036.       B$jscomp$0 = [];
  4037.       if (opts$jscomp$0.items.start != 0) {
  4038.         B$jscomp$0.push(opts$jscomp$0.items.start);
  4039.       }
  4040.     }
  4041.     if (opts$jscomp$0.cookie) {
  4042.       B$jscomp$0.unshift(parseInt(cf_getCookie$jscomp$0(opts$jscomp$0.cookie), 10));
  4043.     }
  4044.     if (B$jscomp$0.length > 0) {
  4045.       /** @type {number} */
  4046.       var a$jscomp$67 = 0;
  4047.       var l$jscomp$12 = B$jscomp$0.length;
  4048.       for (; a$jscomp$67 < l$jscomp$12; a$jscomp$67++) {
  4049.         var s$jscomp$21 = B$jscomp$0[a$jscomp$67];
  4050.         if (s$jscomp$21 == 0) {
  4051.           continue;
  4052.         }
  4053.         if (s$jscomp$21 === true) {
  4054.           /** @type {string} */
  4055.           s$jscomp$21 = window.location.hash;
  4056.           if (s$jscomp$21.length < 1) {
  4057.             continue;
  4058.           }
  4059.         } else {
  4060.           if (s$jscomp$21 === "random") {
  4061.             /** @type {number} */
  4062.             s$jscomp$21 = Math.floor(Math.random() * itms$jscomp$0.total);
  4063.           }
  4064.         }
  4065.         if (y$jscomp$59.triggerHandler(cf_e$jscomp$0("slideTo", conf$jscomp$0), [s$jscomp$21, 0, true, {
  4066.           fx : "none"
  4067.         }])) {
  4068.           break;
  4069.         }
  4070.       }
  4071.     }
  4072.     var C$jscomp$0 = sz_setSizes$jscomp$0(y$jscomp$59, opts$jscomp$0);
  4073.     var itm$jscomp$0 = gi_getCurrentItems$jscomp$0(y$jscomp$59.children(), opts$jscomp$0);
  4074.     if (opts$jscomp$0.onCreate) {
  4075.       opts$jscomp$0.onCreate.call($tt0$jscomp$0, {
  4076.         "width" : C$jscomp$0.width,
  4077.         "height" : C$jscomp$0.height,
  4078.         "items" : itm$jscomp$0
  4079.       });
  4080.     }
  4081.     y$jscomp$59.trigger(cf_e$jscomp$0("updatePageStatus", conf$jscomp$0), [true, C$jscomp$0]);
  4082.     y$jscomp$59.trigger(cf_e$jscomp$0("linkAnchors", conf$jscomp$0));
  4083.     if (conf$jscomp$0.debug) {
  4084.       y$jscomp$59.trigger(cf_e$jscomp$0("debug", conf$jscomp$0));
  4085.     }
  4086.     return y$jscomp$59;
  4087.   };
  4088.   /** @type {number} */
  4089.   $$jscomp$0.fn.carouFredSel.serialNumber = 1;
  4090.   $$jscomp$0.fn.carouFredSel.defaults = {
  4091.     "synchronise" : false,
  4092.     "infinite" : true,
  4093.     "circular" : true,
  4094.     "responsive" : false,
  4095.     "direction" : "left",
  4096.     "items" : {
  4097.       "start" : 0
  4098.     },
  4099.     "scroll" : {
  4100.       "easing" : "swing",
  4101.       "duration" : 500,
  4102.       "pauseOnHover" : false,
  4103.       "event" : "click",
  4104.       "queue" : false
  4105.     }
  4106.   };
  4107.   $$jscomp$0.fn.carouFredSel.configs = {
  4108.     "debug" : false,
  4109.     "transition" : false,
  4110.     "onWindowResize" : "throttle",
  4111.     "events" : {
  4112.       "prefix" : "",
  4113.       "namespace" : "cfs"
  4114.     },
  4115.     "wrapper" : {
  4116.       "element" : "div",
  4117.       "classname" : "caroufredsel_wrapper"
  4118.     },
  4119.     "classnames" : {}
  4120.   };
  4121.   /**
  4122.    * @param {string} a
  4123.    * @return {?}
  4124.    */
  4125.   $$jscomp$0.fn.carouFredSel.pageAnchorBuilder = function(a) {
  4126.     return '<a href="#"><span>' + a + "</span></a>";
  4127.   };
  4128.   /**
  4129.    * @param {string} newXpos
  4130.    * @return {undefined}
  4131.    */
  4132.   $$jscomp$0.fn.carouFredSel.progressbarUpdater = function(newXpos) {
  4133.     $$jscomp$0(this).css("width", newXpos + "%");
  4134.   };
  4135.   $$jscomp$0.fn.carouFredSel.cookie = {
  4136.     get : function(s) {
  4137.       /** @type {string} */
  4138.       s = s + "=";
  4139.       /** @type {!Array<string>} */
  4140.       var conns = document.cookie.split(";");
  4141.       /** @type {number} */
  4142.       var i = 0;
  4143.       /** @type {number} */
  4144.       var l = conns.length;
  4145.       for (; i < l; i++) {
  4146.         /** @type {string} */
  4147.         var c = conns[i];
  4148.         for (; c.charAt(0) == " ";) {
  4149.           /** @type {string} */
  4150.           c = c.slice(1);
  4151.         }
  4152.         if (c.indexOf(s) == 0) {
  4153.           return c.slice(s.length);
  4154.         }
  4155.       }
  4156.       return 0;
  4157.     },
  4158.     set : function(n, d, pos) {
  4159.       /** @type {string} */
  4160.       var components = "";
  4161.       if (pos) {
  4162.         /** @type {!Date} */
  4163.         var dateExpires = new Date;
  4164.         dateExpires.setTime(dateExpires.getTime() + pos * 24 * 60 * 60 * 1E3);
  4165.         /** @type {string} */
  4166.         components = "; expires=" + dateExpires.toGMTString();
  4167.       }
  4168.       /** @type {string} */
  4169.       document.cookie = n + "=" + d + components + "; path=/";
  4170.     },
  4171.     remove : function(n) {
  4172.       $$jscomp$0.fn.carouFredSel.cookie.set(n, "", -1);
  4173.     }
  4174.   };
  4175.   $$jscomp$0.extend($$jscomp$0.easing, {
  4176.     "quadratic" : function(centerY) {
  4177.       /** @type {number} */
  4178.       var iCenterY = centerY * centerY;
  4179.       return centerY * (-iCenterY * centerY + 4 * iCenterY - 6 * centerY + 4);
  4180.     },
  4181.     "cubic" : function(t) {
  4182.       return t * (4 * t * t - 9 * t + 6);
  4183.     },
  4184.     "elastic" : function(t) {
  4185.       /** @type {number} */
  4186.       var x = t * t;
  4187.       return t * (33 * x * x - 106 * x * t + 126 * x - 67 * t + 15);
  4188.     }
  4189.   });
  4190. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement