text: if (typeof _yuitest_coverage == "undefined"){
      _yuitest_coverage = {};
      _yuitest_coverline = function(src, line){
          var coverage = _yuitest_coverage[src];
          if (!coverage.lines[line]){
              coverage.calledLines++;
          }
          coverage.lines[line]++;
      };
      _yuitest_coverfunc = function(src, name, line){
          var coverage = _yuitest_coverage[src],
              funcId = name + ":" + line;
          if (!coverage.functions[funcId]){
              coverage.calledFunctions++;
          }
          coverage.functions[funcId]++;
      };
  }
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"] = {
      lines: {},
      functions: {},
      coveredLines: 0,
      calledLines: 0,
      coveredFunctions: 0,
      calledFunctions: 0,
      path: "build/scrollview-paginator/scrollview-paginator.js",
      code: []
  };
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"].code=["YUI.add('scrollview-paginator', function (Y, NAME) {","","/**"," * Provides a plugin that adds pagination support to ScrollView instances"," *"," * @module scrollview-paginator"," */","var getClassName = Y.ClassNameManager.getClassName,","    SCROLLVIEW = 'scrollview',","    CLASS_HIDDEN = getClassName(SCROLLVIEW, 'hidden'),","    CLASS_PAGED = getClassName(SCROLLVIEW, 'paged'),","    UI = (Y.ScrollView) ? Y.ScrollView.UI_SRC : 'ui',","    INDEX = 'index',","    SCROLL_X = 'scrollX',","    SCROLL_Y = 'scrollY',","    TOTAL = 'total',","    HOST = 'host',","    BOUNDING_BOX = 'boundingBox',","    CONTENT_BOX = 'contentBox',","    SELECTOR = 'selector',","    FLICK = 'flick',","    DRAG = 'drag',","    AXIS = 'axis',","    DIM_X = 'x',","    DIM_Y = 'y';","","/**"," * Scrollview plugin that adds support for paging"," *"," * @class ScrollViewPaginator"," * @namespace Plugin"," * @extends Plugin.Base"," * @constructor"," */","function PaginatorPlugin() {","    PaginatorPlugin.superclass.constructor.apply(this, arguments);","}","","Y.extend(PaginatorPlugin, Y.Plugin.Base, {","","    /**","     * Designated initializer","     *","     * @method initializer","     * @param {config} Configuration object for the plugin","     */","    initializer: function (config) {","        var paginator = this,","            host = paginator.get(HOST);","","        // Initialize & default","        paginator._pageDims = [];","        paginator._pageBuffer = 1;","        paginator._optimizeMemory = false;","","        // Cache some values","        paginator._host = host;","        paginator._bb = host._bb;","        paginator._cb = host._cb;","        paginator._cIndex = paginator.get(INDEX);","        paginator._cAxis = paginator.get(AXIS);","","        // Apply configs","        if (config._optimizeMemory) {","            paginator._optimizeMemory = config._optimizeMemory;","        }","","        if (config._pageBuffer) {","            paginator._pageBuffer = config._pageBuffer;","        }","","        // Attach event bindings","        paginator._bindAttrs();","    },","","    /**","     * ","     *","     * @method _bindAttrs","     * @private","     */","    _bindAttrs: function () {","        var paginator = this;","","        // Event listeners","        paginator.after({","            'indexChange': paginator._afterIndexChange,","            'axisChange': paginator._afterAxisChange","        });","","        // Host method listeners","        paginator.beforeHostMethod('scrollTo', paginator._beforeHostScrollTo);","        paginator.beforeHostMethod('_mousewheel', paginator._beforeHostMousewheel);","        paginator.afterHostMethod('_onGestureMoveEnd', paginator._afterHostGestureMoveEnd);","        paginator.afterHostMethod('_uiDimensionsChange', paginator._afterHostUIDimensionsChange);","        paginator.afterHostMethod('syncUI', paginator._afterHostSyncUI);","        ","        // Host event listeners","        paginator.afterHostEvent('render', paginator._afterHostRender);","        paginator.afterHostEvent('scrollEnd', paginator._afterHostScrollEnded);","    },","","    /**","     * After host render","     *","     * @method _afterHostRender","     * @param {Event.Facade}","     * @protected","     */","    _afterHostRender: function (e) {","        var paginator = this,","            bb = paginator._bb,","            host = paginator._host,","            index = paginator._cIndex,","            paginatorAxis = paginator._cAxis,","            pageNodes = paginator._getPageNodes(),","            size = pageNodes.size(),","            maxScrollX = paginator._pageDims[index].maxScrollX,","            maxScrollY = paginator._pageDims[index].maxScrollY;","","        if (paginatorAxis[DIM_Y]) {","            host._maxScrollX = maxScrollX;","        }","        else if (paginatorAxis[DIM_X]) {","            host._maxScrollY = maxScrollY;","        }","","        // Set the page count","        paginator.set(TOTAL, size);","","        // Jump to the index","        if (index !== 0) {","            paginator.scrollToIndex(index, 0);","        }","","        // Add the paginator class","        bb.addClass(CLASS_PAGED);","","        // Trigger the optimization process","        paginator._optimize();","    },","","    /**","     * After host syncUI","     *","     * @method _afterHostSyncUI","     * @param {Event.Facade}","     * @protected","     */","    _afterHostSyncUI: function (e) {","        var paginator = this,","            host = paginator._host,","            hostFlick = host.get(FLICK),","            paginatorAxis;","","        // If paginator's 'axis' property is to be automatically determined, inherit host's property","        if (paginator._cAxis === undefined) {","            paginator._set(AXIS, host.get(AXIS));","        }","","        paginatorAxis = paginator.get(AXIS);","","        // Don't allow flicks on the paginated axis","        if (paginatorAxis[hostFlick.axis]) {","            host.set(FLICK, false);","        }","    },","","    /**","     * After host _uiDimensionsChange","     *","     * @method _afterHostUIDimensionsChange","     * @param {Event.Facade}","     * @protected","     */","    _afterHostUIDimensionsChange: function (e) {","","        var paginator = this,","            host = paginator._host,","            bb = paginator._bb,","            widgetWidth = bb.get('offsetWidth'),","            widgetHeight = bb.get('offsetHeight'),","            pageNodes = paginator._getPageNodes();","            ","        // Inefficient. Should not reinitialize every page every syncUI","        pageNodes.each(function (node, i) {","            var scrollWidth = node.get('scrollWidth'),","                scrollHeight = node.get('scrollHeight'),","                maxScrollX = Math.max(0, scrollWidth - widgetWidth), // Math.max to ensure we don't set it to a negative value","                maxScrollY = Math.max(0, scrollHeight - widgetHeight);","","            // Don't initialize any page _pageDims that already have been.","            if (!paginator._pageDims[i]) {","","                paginator._pageDims[i] = {","","                    // Current scrollX & scrollY positions (default to 0)","                    scrollX: 0,","                    scrollY: 0,","","                    // Minimum scrollable values","                    _minScrollX: 0,","                    _minScrollY: 0,","","                    // Maximum scrollable values","                    maxScrollX: maxScrollX,","                    maxScrollY: maxScrollY","                };","","            } else {","                paginator._pageDims[i].maxScrollX = maxScrollX;","                paginator._pageDims[i].maxScrollY = maxScrollY;","            }","","        });","    },","","    /**","     * Executed before host.scrollTo","     *","     * @method _beforeHostScrollTo","     * @param x {Number} The x-position to scroll to. (null for no movement)","     * @param y {Number} The y-position to scroll to. (null for no movement)","     * @param {Number} [duration] Duration, in ms, of the scroll animation (default is 0)","     * @param {String} [easing] An easing equation if duration is set","     * @param {String} [node] The node to move","     * @protected","     */","    _beforeHostScrollTo: function (x, y, duration, easing, node) {","        var paginator = this,","            host = paginator._host,","            gesture = host._gesture,","            index = paginator._cIndex,","            paginatorAxis = paginator._cAxis,","            pageNodes = this._getPageNodes(),","            gestureAxis;","","        if (gesture) {","            gestureAxis = gesture.axis;","","            // Null the opposite axis so it won't be modified by host.scrollTo","            if (gestureAxis === DIM_Y) {","                x = null;","            } else {","                y = null;","            }","","            // If they are scrolling against the specified axis, pull out the page's node to have its own offset","            if (paginatorAxis[gestureAxis] === false) {","                node = pageNodes.item(index);","            }","","        }","","        // Return the modified argument list","        return new Y.Do.AlterArgs(\"new args\", [x, y, duration, easing, node]);","    },","","    /**","     * Executed after host._gestureMoveEnd","     * Determines if the gesture should page prev or next (if at all)","     *","     * @method _afterHostGestureMoveEnd","     * @param {Event.Facade}","     * @protected","     */","    _afterHostGestureMoveEnd: function (e) {","        var paginator = this,","            host = paginator._host,","            gesture = host._gesture,","            paginatorAxis = paginator._cAxis,","            gestureAxis = gesture && gesture.axis;","","        if (paginatorAxis[gestureAxis]) {","            if (gesture[(gestureAxis === DIM_X ? 'deltaX' : 'deltaY')] > 0) {","                paginator[host.rtl ? 'prev' : 'next']();","            } else {","                paginator[host.rtl ? 'next' : 'prev']();","            }","        }","    },","","    /**","     * Executed before host._mousewheel","     * Prevents mousewheel events in some conditions","     *","     * @method _beforeHostMousewheel","     * @param {Event.Facade}","     * @protected","     */","    _beforeHostMousewheel: function (e) {","        var paginator = this,","            host = paginator._host,","            bb = host._bb,","            isForward = e.wheelDelta < 0, // down (negative) is forward. @TODO Should revisit.","            paginatorAxis = paginator._cAxis;","","        // Set the axis for this event.","        // @TODO: This is hacky, it's not a gesture. Find a better way","        host._gesture = {","            axis: DIM_Y","        };","","        // Only if the mousewheel event occurred on a DOM node inside the BB","        if (bb.contains(e.target) && paginatorAxis[DIM_Y]) {","","            if (isForward) {","                paginator.next();","            } else {","                paginator.prev();","            }","","            // prevent browser default behavior on mousewheel","            e.preventDefault();","","            // Block host._mousewheel from running","            return new Y.Do.Prevent();","        }","    },","","    /**","     * Executes after host's 'scrollEnd' event","     * Runs cleanup operations","     *","     * @method _afterHostScrollEnded","     * @param {Event.Facade}","     * @protected","     */","    _afterHostScrollEnded: function (e) {","        var paginator = this,","            host = paginator._host,","            index = paginator._cIndex,","            scrollX = host.get(SCROLL_X),","            scrollY = host.get(SCROLL_Y),","            paginatorAxis = paginator._cAxis;","","        if (paginatorAxis[DIM_Y]) {","            paginator._pageDims[index].scrollX = scrollX;","        } else {","            paginator._pageDims[index].scrollY = scrollY;","        }","","        paginator._optimize();","    },","","    /**","     * index attr change handler","     *","     * @method _afterIndexChange","     * @param {Event.Facade}","     * @protected","     */","    _afterIndexChange: function (e) {","        var paginator = this,","            host = this._host,","            index = e.newVal,","            maxScrollX = paginator._pageDims[index].maxScrollX,","            maxScrollY = paginator._pageDims[index].maxScrollY,","            gesture = host._gesture,","            gestureAxis = gesture && gesture.axis;","","        // Cache the new index value","        paginator._cIndex = index;","","        if (gestureAxis === DIM_Y) {","            host._maxScrollX = maxScrollX;","            host.set(SCROLL_X, paginator._pageDims[index].scrollX, { src: UI });","        } else if (gestureAxis === DIM_X) {","            host._maxScrollY = maxScrollY;","            host.set(SCROLL_Y, paginator._pageDims[index].scrollY, { src: UI });","        }","","        if (e.src !== UI) {","            paginator.scrollToIndex(index);","        }","    },","","    /**","     * Optimization: Hides the pages not near the viewport","     *","     * @method _optimize","     * @protected","     */","    _optimize: function () {","","        if (!this._optimizeMemory) {","            return false;","        }","","        var paginator = this,","            currentIndex = paginator._cIndex,","            pageNodes = paginator._getStage(currentIndex);","","        // Show the pages in/near the viewport & hide the rest","        paginator._showNodes(pageNodes.visible);","        paginator._hideNodes(pageNodes.hidden);","    },","","    /**","     * Optimization: Determines which nodes should be visible, and which should be hidden.","     *","     * @method _getStage","     * @param index {Number} The page index # intended to be in focus.","     * @returns {object}","     * @protected","     */","    _getStage: function (index) {","        var _pageBuffer = this._pageBuffer,","            pageCount = this.get(TOTAL),","            pageNodes = this._getPageNodes(),","            start = Math.max(0, index - _pageBuffer),","            end = Math.min(pageCount, index + 1 + _pageBuffer); // noninclusive","","        return {","            visible: pageNodes.splice(start, end - start),","            hidden: pageNodes","        };","    },","","    /**","     * A utility method to show node(s)","     *","     * @method _showNodes","     * @param nodeList {Object} The list of nodes to show","     * @protected","     */","    _showNodes: function (nodeList) {","        if (nodeList) {","            nodeList.removeClass(CLASS_HIDDEN).setStyle('visibility', '');","        }","    },","","    /**","     * A utility method to hide node(s)","     *","     * @method _hideNodes","     * @param nodeList {Object} The list of nodes to hide","     * @protected","     */","    _hideNodes: function (nodeList) {","        if (nodeList) {","            nodeList.addClass(CLASS_HIDDEN).setStyle('visibility', 'hidden');","        }","    },","","    /**","     * Gets a nodeList for the \"pages\"","     *","     * @method _getPageNodes","     * @protected","     * @returns {nodeList}","     */","    _getPageNodes: function () {","        var paginator = this,","            host = paginator._host,","            cb = host._cb,","            pageSelector = paginator.get(SELECTOR),","            pageNodes = pageSelector ? cb.all(pageSelector) : cb.get('children');","","        return pageNodes;","    },","","    /**","     * Scroll to the next page, with animation","     *","     * @method next","     */","    next: function () {","        var paginator = this,","            index = paginator._cIndex,","            target = index + 1,","            total = this.get(TOTAL);","","        if (target >= total) {","            return;","        }","","        // Update the index","        paginator.set(INDEX, target);","    },","","    /**","     * Scroll to the previous page, with animation","     *","     * @method prev","     */","    prev: function () {","        var paginator = this,","            index = paginator._cIndex,","            target = index - 1;","","        if (target < 0) {","            return;","        }","","        // Update the index","        paginator.set(INDEX, target);","    },","    ","    /** ","     * Deprecated for 3.7.0.","     * @deprecated","     */","    scrollTo: function () {","        return this.scrollToIndex.apply(this, arguments);","    },","","    /**","     * Scroll to a given page in the scrollview","     *","     * @method scrollToIndex","     * @param index {Number} The index of the page to scroll to","     * @param {Number} [duration] The number of ms the animation should last","     * @param {String} [easing] The timing function to use in the animation","     */","    scrollToIndex: function (index, duration, easing) {","        var paginator = this,","            host = paginator._host,","            pageNode = paginator._getPageNodes().item(index),","            scrollAxis = (paginator._cAxis[DIM_X] ? SCROLL_X : SCROLL_Y),","            scrollOffset = pageNode.get(scrollAxis === SCROLL_X ? 'offsetLeft' : 'offsetTop');","","        duration = (duration !== undefined) ? duration : PaginatorPlugin.TRANSITION.duration;","        easing = (easing !== undefined) ? duration : PaginatorPlugin.TRANSITION.easing;","","        // Set the index ATTR to the specified index value","        paginator.set(INDEX, index);","","        // Makes sure the viewport nodes are visible","        paginator._showNodes(pageNode);","","        // Scroll to the offset","        host.set(scrollAxis, scrollOffset, {","            duration: duration,","            easing: easing","        });","    },","","    /**","     * Setter for 'axis' attribute","     *","     * @method _axisSetter","     * @param val {Mixed} A string ('x', 'y', 'xy') to specify which axis/axes to allow scrolling on","     * @param name {String} The attribute name","     * @return {Object} An object to specify scrollability on the x & y axes","     * ","     * @protected","     */","    _axisSetter: function (val, name) {","","        // Turn a string into an axis object","        if (Y.Lang.isString(val)) {","            return {","                x: val.match(/x/i) ? true : false,","                y: val.match(/y/i) ? true : false","            };","        }","    },"," ","","    /**","     * After listener for the axis attribute","     *","     * @method _afterAxisChange","     * @param e {Event.Facade} The event facade","     * @protected","     */","    _afterAxisChange: function (e) {","        this._cAxis = e.newVal;","    }","","    // End prototype properties","","}, {","    ","    // Static properties","","    /**","     * The identity of the plugin","     *","     * @property NAME","     * @type String","     * @default 'pluginScrollViewPaginator'","     * @readOnly","     * @protected","     * @static","     */","    NAME: 'pluginScrollViewPaginator',","","    /**","     * The namespace on which the plugin will reside","     *","     * @property NS","     * @type String","     * @default 'pages'","     * @static","     */","    NS: 'pages',","","    /**","     * The default attribute configuration for the plugin","     *","     * @property ATTRS","     * @type {Object}","     * @static","     */","    ATTRS: {","","        /**","         * Specifies ability to scroll on x, y, or x and y axis/axes. ","         * If unspecified, it inherits from the host instance.","         *","         * @attribute axis","         * @type String","         */","        axis: {","            setter: '_axisSetter',","            writeOnce: 'initOnly'","        },","","        /**","         * CSS selector for a page inside the scrollview. The scrollview","         * will snap to the closest page.","         *","         * @attribute selector","         * @type {String}","         * @default null","         */","        selector: {","            value: null","        },","","        /**","         * The active page number for a paged scrollview","         *","         * @attribute index","         * @type {Number}","         * @default 0","         */","        index: {","            value: 0,","            validator: function (val) {","                // TODO: Remove this?","                // return val >= 0 && val < this.get(TOTAL);","                return true;","            }","        },","","        /**","         * The total number of pages","         *","         * @attribute total","         * @type {Number}","         * @default 0","         */","        total: {","            value: 0","        }","    },","        ","    /**","     * The default snap to current duration and easing values used on scroll end.","     *","     * @property SNAP_TO_CURRENT","     * @static","     */","    TRANSITION: {","        duration: 300,","        easing: 'ease-out'","    }","","    // End static properties","","});","","Y.namespace('Plugin').ScrollViewPaginator = PaginatorPlugin;","","}, '@VERSION@', {\"requires\": [\"plugin\", \"classnamemanager\"]});"];
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"].lines = {"1":0,"8":0,"35":0,"36":0,"39":0,"48":0,"52":0,"53":0,"54":0,"57":0,"58":0,"59":0,"60":0,"61":0,"64":0,"65":0,"68":0,"69":0,"73":0,"83":0,"86":0,"92":0,"93":0,"94":0,"95":0,"96":0,"99":0,"100":0,"111":0,"121":0,"122":0,"124":0,"125":0,"129":0,"132":0,"133":0,"137":0,"140":0,"151":0,"157":0,"158":0,"161":0,"164":0,"165":0,"178":0,"186":0,"187":0,"193":0,"195":0,"211":0,"212":0,"230":0,"238":0,"239":0,"242":0,"243":0,"245":0,"249":0,"250":0,"256":0,"268":0,"274":0,"275":0,"276":0,"278":0,"292":0,"300":0,"305":0,"307":0,"308":0,"310":0,"314":0,"317":0,"330":0,"337":0,"338":0,"340":0,"343":0,"354":0,"363":0,"365":0,"366":0,"367":0,"368":0,"369":0,"370":0,"373":0,"374":0,"386":0,"387":0,"390":0,"395":0,"396":0,"408":0,"414":0,"428":0,"429":0,"441":0,"442":0,"454":0,"460":0,"469":0,"474":0,"475":0,"479":0,"488":0,"492":0,"493":0,"497":0,"505":0,"517":0,"523":0,"524":0,"527":0,"530":0,"533":0,"552":0,"553":0,"569":0,"645":0,"676":0};
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"].functions = {"PaginatorPlugin:35":0,"initializer:47":0,"_bindAttrs:82":0,"_afterHostRender:110":0,"_afterHostSyncUI:150":0,"(anonymous 2):186":0,"_afterHostUIDimensionsChange:176":0,"_beforeHostScrollTo:229":0,"_afterHostGestureMoveEnd:267":0,"_beforeHostMousewheel:291":0,"_afterHostScrollEnded:329":0,"_afterIndexChange:353":0,"_optimize:384":0,"_getStage:407":0,"_showNodes:427":0,"_hideNodes:440":0,"_getPageNodes:453":0,"next:468":0,"prev:487":0,"scrollTo:504":0,"scrollToIndex:516":0,"_axisSetter:549":0,"_afterAxisChange:568":0,"validator:642":0,"(anonymous 1):1":0};
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"].coveredLines = 121;
  _yuitest_coverage["build/scrollview-paginator/scrollview-paginator.js"].coveredFunctions = 25;
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 1);
  YUI.add('scrollview-paginator', function (Y, NAME) {
  
  /**
   * Provides a plugin that adds pagination support to ScrollView instances
   *
   * @module scrollview-paginator
   */
  _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "(anonymous 1)", 1);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 8);
  var getClassName = Y.ClassNameManager.getClassName,
      SCROLLVIEW = 'scrollview',
      CLASS_HIDDEN = getClassName(SCROLLVIEW, 'hidden'),
      CLASS_PAGED = getClassName(SCROLLVIEW, 'paged'),
      UI = (Y.ScrollView) ? Y.ScrollView.UI_SRC : 'ui',
      INDEX = 'index',
      SCROLL_X = 'scrollX',
      SCROLL_Y = 'scrollY',
      TOTAL = 'total',
      HOST = 'host',
      BOUNDING_BOX = 'boundingBox',
      CONTENT_BOX = 'contentBox',
      SELECTOR = 'selector',
      FLICK = 'flick',
      DRAG = 'drag',
      AXIS = 'axis',
      DIM_X = 'x',
      DIM_Y = 'y';
  
  /**
   * Scrollview plugin that adds support for paging
   *
   * @class ScrollViewPaginator
   * @namespace Plugin
   * @extends Plugin.Base
   * @constructor
   */
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 35);
  function PaginatorPlugin() {
      _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "PaginatorPlugin", 35);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 36);
  PaginatorPlugin.superclass.constructor.apply(this, arguments);
  }
  
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 39);
  Y.extend(PaginatorPlugin, Y.Plugin.Base, {
  
      /**
       * Designated initializer
       *
       * @method initializer
       * @param {config} Configuration object for the plugin
       */
      initializer: function (config) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "initializer", 47);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 48);
  var paginator = this,
              host = paginator.get(HOST);
  
          // Initialize & default
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 52);
  paginator._pageDims = [];
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 53);
  paginator._pageBuffer = 1;
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 54);
  paginator._optimizeMemory = false;
  
          // Cache some values
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 57);
  paginator._host = host;
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 58);
  paginator._bb = host._bb;
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 59);
  paginator._cb = host._cb;
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 60);
  paginator._cIndex = paginator.get(INDEX);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 61);
  paginator._cAxis = paginator.get(AXIS);
  
          // Apply configs
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 64);
  if (config._optimizeMemory) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 65);
  paginator._optimizeMemory = config._optimizeMemory;
          }
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 68);
  if (config._pageBuffer) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 69);
  paginator._pageBuffer = config._pageBuffer;
          }
  
          // Attach event bindings
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 73);
  paginator._bindAttrs();
      },
  
      /**
       * 
       *
       * @method _bindAttrs
       * @private
       */
      _bindAttrs: function () {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_bindAttrs", 82);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 83);
  var paginator = this;
  
          // Event listeners
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 86);
  paginator.after({
              'indexChange': paginator._afterIndexChange,
              'axisChange': paginator._afterAxisChange
          });
  
          // Host method listeners
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 92);
  paginator.beforeHostMethod('scrollTo', paginator._beforeHostScrollTo);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 93);
  paginator.beforeHostMethod('_mousewheel', paginator._beforeHostMousewheel);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 94);
  paginator.afterHostMethod('_onGestureMoveEnd', paginator._afterHostGestureMoveEnd);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 95);
  paginator.afterHostMethod('_uiDimensionsChange', paginator._afterHostUIDimensionsChange);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 96);
  paginator.afterHostMethod('syncUI', paginator._afterHostSyncUI);
          
          // Host event listeners
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 99);
  paginator.afterHostEvent('render', paginator._afterHostRender);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 100);
  paginator.afterHostEvent('scrollEnd', paginator._afterHostScrollEnded);
      },
  
      /**
       * After host render
       *
       * @method _afterHostRender
       * @param {Event.Facade}
       * @protected
       */
      _afterHostRender: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterHostRender", 110);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 111);
  var paginator = this,
              bb = paginator._bb,
              host = paginator._host,
              index = paginator._cIndex,
              paginatorAxis = paginator._cAxis,
              pageNodes = paginator._getPageNodes(),
              size = pageNodes.size(),
              maxScrollX = paginator._pageDims[index].maxScrollX,
              maxScrollY = paginator._pageDims[index].maxScrollY;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 121);
  if (paginatorAxis[DIM_Y]) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 122);
  host._maxScrollX = maxScrollX;
          }
          else {_yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 124);
  if (paginatorAxis[DIM_X]) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 125);
  host._maxScrollY = maxScrollY;
          }}
  
          // Set the page count
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 129);
  paginator.set(TOTAL, size);
  
          // Jump to the index
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 132);
  if (index !== 0) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 133);
  paginator.scrollToIndex(index, 0);
          }
  
          // Add the paginator class
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 137);
  bb.addClass(CLASS_PAGED);
  
          // Trigger the optimization process
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 140);
  paginator._optimize();
      },
  
      /**
       * After host syncUI
       *
       * @method _afterHostSyncUI
       * @param {Event.Facade}
       * @protected
       */
      _afterHostSyncUI: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterHostSyncUI", 150);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 151);
  var paginator = this,
              host = paginator._host,
              hostFlick = host.get(FLICK),
              paginatorAxis;
  
          // If paginator's 'axis' property is to be automatically determined, inherit host's property
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 157);
  if (paginator._cAxis === undefined) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 158);
  paginator._set(AXIS, host.get(AXIS));
          }
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 161);
  paginatorAxis = paginator.get(AXIS);
  
          // Don't allow flicks on the paginated axis
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 164);
  if (paginatorAxis[hostFlick.axis]) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 165);
  host.set(FLICK, false);
          }
      },
  
      /**
       * After host _uiDimensionsChange
       *
       * @method _afterHostUIDimensionsChange
       * @param {Event.Facade}
       * @protected
       */
      _afterHostUIDimensionsChange: function (e) {
  
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterHostUIDimensionsChange", 176);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 178);
  var paginator = this,
              host = paginator._host,
              bb = paginator._bb,
              widgetWidth = bb.get('offsetWidth'),
              widgetHeight = bb.get('offsetHeight'),
              pageNodes = paginator._getPageNodes();
              
          // Inefficient. Should not reinitialize every page every syncUI
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 186);
  pageNodes.each(function (node, i) {
              _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "(anonymous 2)", 186);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 187);
  var scrollWidth = node.get('scrollWidth'),
                  scrollHeight = node.get('scrollHeight'),
                  maxScrollX = Math.max(0, scrollWidth - widgetWidth), // Math.max to ensure we don't set it to a negative value
                  maxScrollY = Math.max(0, scrollHeight - widgetHeight);
  
              // Don't initialize any page _pageDims that already have been.
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 193);
  if (!paginator._pageDims[i]) {
  
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 195);
  paginator._pageDims[i] = {
  
                      // Current scrollX & scrollY positions (default to 0)
                      scrollX: 0,
                      scrollY: 0,
  
                      // Minimum scrollable values
                      _minScrollX: 0,
                      _minScrollY: 0,
  
                      // Maximum scrollable values
                      maxScrollX: maxScrollX,
                      maxScrollY: maxScrollY
                  };
  
              } else {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 211);
  paginator._pageDims[i].maxScrollX = maxScrollX;
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 212);
  paginator._pageDims[i].maxScrollY = maxScrollY;
              }
  
          });
      },
  
      /**
       * Executed before host.scrollTo
       *
       * @method _beforeHostScrollTo
       * @param x {Number} The x-position to scroll to. (null for no movement)
       * @param y {Number} The y-position to scroll to. (null for no movement)
       * @param {Number} [duration] Duration, in ms, of the scroll animation (default is 0)
       * @param {String} [easing] An easing equation if duration is set
       * @param {String} [node] The node to move
       * @protected
       */
      _beforeHostScrollTo: function (x, y, duration, easing, node) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_beforeHostScrollTo", 229);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 230);
  var paginator = this,
              host = paginator._host,
              gesture = host._gesture,
              index = paginator._cIndex,
              paginatorAxis = paginator._cAxis,
              pageNodes = this._getPageNodes(),
              gestureAxis;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 238);
  if (gesture) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 239);
  gestureAxis = gesture.axis;
  
              // Null the opposite axis so it won't be modified by host.scrollTo
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 242);
  if (gestureAxis === DIM_Y) {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 243);
  x = null;
              } else {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 245);
  y = null;
              }
  
              // If they are scrolling against the specified axis, pull out the page's node to have its own offset
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 249);
  if (paginatorAxis[gestureAxis] === false) {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 250);
  node = pageNodes.item(index);
              }
  
          }
  
          // Return the modified argument list
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 256);
  return new Y.Do.AlterArgs("new args", [x, y, duration, easing, node]);
      },
  
      /**
       * Executed after host._gestureMoveEnd
       * Determines if the gesture should page prev or next (if at all)
       *
       * @method _afterHostGestureMoveEnd
       * @param {Event.Facade}
       * @protected
       */
      _afterHostGestureMoveEnd: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterHostGestureMoveEnd", 267);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 268);
  var paginator = this,
              host = paginator._host,
              gesture = host._gesture,
              paginatorAxis = paginator._cAxis,
              gestureAxis = gesture && gesture.axis;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 274);
  if (paginatorAxis[gestureAxis]) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 275);
  if (gesture[(gestureAxis === DIM_X ? 'deltaX' : 'deltaY')] > 0) {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 276);
  paginator[host.rtl ? 'prev' : 'next']();
              } else {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 278);
  paginator[host.rtl ? 'next' : 'prev']();
              }
          }
      },
  
      /**
       * Executed before host._mousewheel
       * Prevents mousewheel events in some conditions
       *
       * @method _beforeHostMousewheel
       * @param {Event.Facade}
       * @protected
       */
      _beforeHostMousewheel: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_beforeHostMousewheel", 291);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 292);
  var paginator = this,
              host = paginator._host,
              bb = host._bb,
              isForward = e.wheelDelta < 0, // down (negative) is forward. @TODO Should revisit.
              paginatorAxis = paginator._cAxis;
  
          // Set the axis for this event.
          // @TODO: This is hacky, it's not a gesture. Find a better way
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 300);
  host._gesture = {
              axis: DIM_Y
          };
  
          // Only if the mousewheel event occurred on a DOM node inside the BB
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 305);
  if (bb.contains(e.target) && paginatorAxis[DIM_Y]) {
  
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 307);
  if (isForward) {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 308);
  paginator.next();
              } else {
                  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 310);
  paginator.prev();
              }
  
              // prevent browser default behavior on mousewheel
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 314);
  e.preventDefault();
  
              // Block host._mousewheel from running
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 317);
  return new Y.Do.Prevent();
          }
      },
  
      /**
       * Executes after host's 'scrollEnd' event
       * Runs cleanup operations
       *
       * @method _afterHostScrollEnded
       * @param {Event.Facade}
       * @protected
       */
      _afterHostScrollEnded: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterHostScrollEnded", 329);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 330);
  var paginator = this,
              host = paginator._host,
              index = paginator._cIndex,
              scrollX = host.get(SCROLL_X),
              scrollY = host.get(SCROLL_Y),
              paginatorAxis = paginator._cAxis;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 337);
  if (paginatorAxis[DIM_Y]) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 338);
  paginator._pageDims[index].scrollX = scrollX;
          } else {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 340);
  paginator._pageDims[index].scrollY = scrollY;
          }
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 343);
  paginator._optimize();
      },
  
      /**
       * index attr change handler
       *
       * @method _afterIndexChange
       * @param {Event.Facade}
       * @protected
       */
      _afterIndexChange: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterIndexChange", 353);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 354);
  var paginator = this,
              host = this._host,
              index = e.newVal,
              maxScrollX = paginator._pageDims[index].maxScrollX,
              maxScrollY = paginator._pageDims[index].maxScrollY,
              gesture = host._gesture,
              gestureAxis = gesture && gesture.axis;
  
          // Cache the new index value
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 363);
  paginator._cIndex = index;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 365);
  if (gestureAxis === DIM_Y) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 366);
  host._maxScrollX = maxScrollX;
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 367);
  host.set(SCROLL_X, paginator._pageDims[index].scrollX, { src: UI });
          } else {_yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 368);
  if (gestureAxis === DIM_X) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 369);
  host._maxScrollY = maxScrollY;
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 370);
  host.set(SCROLL_Y, paginator._pageDims[index].scrollY, { src: UI });
          }}
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 373);
  if (e.src !== UI) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 374);
  paginator.scrollToIndex(index);
          }
      },
  
      /**
       * Optimization: Hides the pages not near the viewport
       *
       * @method _optimize
       * @protected
       */
      _optimize: function () {
  
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_optimize", 384);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 386);
  if (!this._optimizeMemory) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 387);
  return false;
          }
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 390);
  var paginator = this,
              currentIndex = paginator._cIndex,
              pageNodes = paginator._getStage(currentIndex);
  
          // Show the pages in/near the viewport & hide the rest
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 395);
  paginator._showNodes(pageNodes.visible);
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 396);
  paginator._hideNodes(pageNodes.hidden);
      },
  
      /**
       * Optimization: Determines which nodes should be visible, and which should be hidden.
       *
       * @method _getStage
       * @param index {Number} The page index # intended to be in focus.
       * @returns {object}
       * @protected
       */
      _getStage: function (index) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_getStage", 407);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 408);
  var _pageBuffer = this._pageBuffer,
              pageCount = this.get(TOTAL),
              pageNodes = this._getPageNodes(),
              start = Math.max(0, index - _pageBuffer),
              end = Math.min(pageCount, index + 1 + _pageBuffer); // noninclusive
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 414);
  return {
              visible: pageNodes.splice(start, end - start),
              hidden: pageNodes
          };
      },
  
      /**
       * A utility method to show node(s)
       *
       * @method _showNodes
       * @param nodeList {Object} The list of nodes to show
       * @protected
       */
      _showNodes: function (nodeList) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_showNodes", 427);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 428);
  if (nodeList) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 429);
  nodeList.removeClass(CLASS_HIDDEN).setStyle('visibility', '');
          }
      },
  
      /**
       * A utility method to hide node(s)
       *
       * @method _hideNodes
       * @param nodeList {Object} The list of nodes to hide
       * @protected
       */
      _hideNodes: function (nodeList) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_hideNodes", 440);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 441);
  if (nodeList) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 442);
  nodeList.addClass(CLASS_HIDDEN).setStyle('visibility', 'hidden');
          }
      },
  
      /**
       * Gets a nodeList for the "pages"
       *
       * @method _getPageNodes
       * @protected
       * @returns {nodeList}
       */
      _getPageNodes: function () {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_getPageNodes", 453);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 454);
  var paginator = this,
              host = paginator._host,
              cb = host._cb,
              pageSelector = paginator.get(SELECTOR),
              pageNodes = pageSelector ? cb.all(pageSelector) : cb.get('children');
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 460);
  return pageNodes;
      },
  
      /**
       * Scroll to the next page, with animation
       *
       * @method next
       */
      next: function () {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "next", 468);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 469);
  var paginator = this,
              index = paginator._cIndex,
              target = index + 1,
              total = this.get(TOTAL);
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 474);
  if (target >= total) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 475);
  return;
          }
  
          // Update the index
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 479);
  paginator.set(INDEX, target);
      },
  
      /**
       * Scroll to the previous page, with animation
       *
       * @method prev
       */
      prev: function () {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "prev", 487);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 488);
  var paginator = this,
              index = paginator._cIndex,
              target = index - 1;
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 492);
  if (target < 0) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 493);
  return;
          }
  
          // Update the index
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 497);
  paginator.set(INDEX, target);
      },
      
      /** 
       * Deprecated for 3.7.0.
       * @deprecated
       */
      scrollTo: function () {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "scrollTo", 504);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 505);
  return this.scrollToIndex.apply(this, arguments);
      },
  
      /**
       * Scroll to a given page in the scrollview
       *
       * @method scrollToIndex
       * @param index {Number} The index of the page to scroll to
       * @param {Number} [duration] The number of ms the animation should last
       * @param {String} [easing] The timing function to use in the animation
       */
      scrollToIndex: function (index, duration, easing) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "scrollToIndex", 516);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 517);
  var paginator = this,
              host = paginator._host,
              pageNode = paginator._getPageNodes().item(index),
              scrollAxis = (paginator._cAxis[DIM_X] ? SCROLL_X : SCROLL_Y),
              scrollOffset = pageNode.get(scrollAxis === SCROLL_X ? 'offsetLeft' : 'offsetTop');
  
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 523);
  duration = (duration !== undefined) ? duration : PaginatorPlugin.TRANSITION.duration;
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 524);
  easing = (easing !== undefined) ? duration : PaginatorPlugin.TRANSITION.easing;
  
          // Set the index ATTR to the specified index value
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 527);
  paginator.set(INDEX, index);
  
          // Makes sure the viewport nodes are visible
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 530);
  paginator._showNodes(pageNode);
  
          // Scroll to the offset
          _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 533);
  host.set(scrollAxis, scrollOffset, {
              duration: duration,
              easing: easing
          });
      },
  
      /**
       * Setter for 'axis' attribute
       *
       * @method _axisSetter
       * @param val {Mixed} A string ('x', 'y', 'xy') to specify which axis/axes to allow scrolling on
       * @param name {String} The attribute name
       * @return {Object} An object to specify scrollability on the x & y axes
       * 
       * @protected
       */
      _axisSetter: function (val, name) {
  
          // Turn a string into an axis object
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_axisSetter", 549);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 552);
  if (Y.Lang.isString(val)) {
              _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 553);
  return {
                  x: val.match(/x/i) ? true : false,
                  y: val.match(/y/i) ? true : false
              };
          }
      },
   
  
      /**
       * After listener for the axis attribute
       *
       * @method _afterAxisChange
       * @param e {Event.Facade} The event facade
       * @protected
       */
      _afterAxisChange: function (e) {
          _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "_afterAxisChange", 568);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 569);
  this._cAxis = e.newVal;
      }
  
      // End prototype properties
  
  }, {
      
      // Static properties
  
      /**
       * The identity of the plugin
       *
       * @property NAME
       * @type String
       * @default 'pluginScrollViewPaginator'
       * @readOnly
       * @protected
       * @static
       */
      NAME: 'pluginScrollViewPaginator',
  
      /**
       * The namespace on which the plugin will reside
       *
       * @property NS
       * @type String
       * @default 'pages'
       * @static
       */
      NS: 'pages',
  
      /**
       * The default attribute configuration for the plugin
       *
       * @property ATTRS
       * @type {Object}
       * @static
       */
      ATTRS: {
  
          /**
           * Specifies ability to scroll on x, y, or x and y axis/axes. 
           * If unspecified, it inherits from the host instance.
           *
           * @attribute axis
           * @type String
           */
          axis: {
              setter: '_axisSetter',
              writeOnce: 'initOnly'
          },
  
          /**
           * CSS selector for a page inside the scrollview. The scrollview
           * will snap to the closest page.
           *
           * @attribute selector
           * @type {String}
           * @default null
           */
          selector: {
              value: null
          },
  
          /**
           * The active page number for a paged scrollview
           *
           * @attribute index
           * @type {Number}
           * @default 0
           */
          index: {
              value: 0,
              validator: function (val) {
                  // TODO: Remove this?
                  // return val >= 0 && val < this.get(TOTAL);
                  _yuitest_coverfunc("build/scrollview-paginator/scrollview-paginator.js", "validator", 642);
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 645);
  return true;
              }
          },
  
          /**
           * The total number of pages
           *
           * @attribute total
           * @type {Number}
           * @default 0
           */
          total: {
              value: 0
          }
      },
          
      /**
       * The default snap to current duration and easing values used on scroll end.
       *
       * @property SNAP_TO_CURRENT
       * @static
       */
      TRANSITION: {
          duration: 300,
          easing: 'ease-out'
      }
  
      // End static properties
  
  });
  
  _yuitest_coverline("build/scrollview-paginator/scrollview-paginator.js", 676);
  Y.namespace('Plugin').ScrollViewPaginator = PaginatorPlugin;
  
  }, '@VERSION@', {"requires": ["plugin", "classnamemanager"]});
  